English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Androidプログラミングで一発ロックスクリーンを実現する方法の詳細

この記事では、Androidプログラミングで実現された一键ロックスクリーンプログラムの例を紹介します。皆さんに参考にしていただければ幸いです。以下の通りです:

筆者の知識によると、すべてのAndroidスマートフォンが電源ボタンを使用して手動でロックスクリーンを切り替えます。筆者がスマートフォンを使用する際には、1日で手動でロックスクリーンを切り替える回数は少なくありません。30回です。すべてを電源ボタンで行うと、電源ボタンの寿命は長くはなりません。

現在、多くのデスクトップソフトウェアが一键ロックスクリーンを統合していますが、これらのソフトウェアをインストールするには、他のコンポーネントもインストールする必要があり、これは非常に不快です。なぜなら、彼らは定期的に自動的に更新し、または私が望まないものをバックグラウンドで実行するからです。だから、私は自分でロックスクリーンプログラムを書くことにしました。

android開発ドキュメント内で検索した結果、androidから 2.2最初に、APIにはlockNowメソッド(android.app.admin.DevicePolicyManagerパッケージ内)が含まれており、ロックスクリーンプログラムはこのメソッドを使用して実現できます。

実際にコードを書く前に、理解する必要がある2つのクラスがあります:

1、DevicePolicyManager

その名の通り、このクラスの役割はデバイスの管理です。このクラスを通じて、スクリーンロック、明るさ調節、甚至は工場出荷設定の復元などの機能を実現できます。

2、DeviceAdminReceiver

このクラスの親クラスはBroadcastReceiverで、OnReceiveメソッドを通じて異なるActionに応じて異なるアクションを実行できます。

このプログラムの開発プロセスは以下のようです:

DevicePolicyManagerのメソッドを使用するには、まずComponentを定義する必要があります。その後、そのコンポーネントを管理してDeviceAdminReceiverを起動します。
権限の変更を監視するためのブロードキャストを登録し、AndroidManifest.xmlファイル内の以下のコードを実行します:

<receiver android:name=".LockScreenAdmin" android:label="@string/app_name"
  android:description="@string/app_name" android:permission="android.permission.BIND_DEVICE_ADMIN">
  <meta-data android:name="android.app.device_admin"
    android:resource="@xml/lock_screen_admin" />
  <intent-filter>
    <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
  </intent-filter>
</receiver>

ここで、permissionはこの機能が必要な権限を示します;android:name="android.app.device_admin"はこのアクションの遷移先の画面を示します;android:resource="@xml"は、/lock_screen_admin"に指される内容は以下の通りです:

<device-admin
 xmlns:android="http://schemas.android.com/apk/res/android">
  <uses-policies>
    <force-lock />
  </uses-policies>
</device-admin>

1DeviceAdminReceiverを継承したクラスを実装し、必要なメソッドを実装します。このクラスは基本的にコードを書かないため、ここでは省略します。

2以下に重要なコードを示します。

このコードは、初めて実行されたときにcomponentをアクティブにするために使用されます。一度アクティブにすると、このcomponentは常にアクティブのままになります。startActivityForResult()を使用して、onResultメソッドでlockNow()を呼び出してスクリーンをロックし、初めて実行されていない場合、直接lockNow()を呼び出してスクリーンをロックします。

if (mDevicepolicymanager.isAdminActive(mComponentname)) {
  mDevicepolicymanager.lockNow();
  finish();
}// プログラムの最初の実行
  Intent intent = new Intent(
      DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
  intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
      mComponentname);
  intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
      "One key lock screen need to active"
  startActivityForResult(intent, RESULT_ENABLE);
}

これで、ロックスクリーンの主な部分は終わりです。

Androidに関する詳細な内容に興味を持つ読者は、本サイトの特集を参照してください:《Android グラフィックスとイメージ処理の技術要約》、《Android 開発入門と進階チュートリアル》、《Android デバッグ技術と一般的な問題解決方法のまとめ》、《Android メディア操作技術要約(オーディオ、ビデオ、録音など)》、《Android 基本コンポーネントの使用方法要約》、《Android ビュー View 技術要約》、《Android レイアウト layout 技術要約》および《Android コントロールの使用方法要約》

本文の内容が皆様のAndroidプログラム設計に役立つことを願っています。

声明:本文の内容はインターネットから提供され、著作権者に帰属します。インターネットユーザーが自発的に貢献し、アップロードした内容であり、本サイトは所有権を持ちません。人工編集は行われていません。著作権侵害を疑う内容があれば、メールを送信してください:notice#oldtoolbag.com(メールを送信する際、#を@に置き換えてください。告発を行い、関連する証拠を提供してください。一旦確認が取れた場合、本サイトは即座に侵害を疑われるコンテンツを削除します。)

基礎教程
おすすめ