何人かのユーザーから、私のアプリ用の Android ロック画面ウィジェットを求められてきました。彼らは、ロック画面にとどまり、アプリとやり取りできるウィジェットを望んでいると思います。
これに関する公式のドキュメントを見つけることができませんでした。唯一見つけたのは、ホーム画面のウィジェットを取得してロック画面に配置するアプリだけでした。
真のロック画面ウィジェットの作成についてどこで学んだかについての手がかりはありますか?
何人かのユーザーから、私のアプリ用の Android ロック画面ウィジェットを求められてきました。彼らは、ロック画面にとどまり、アプリとやり取りできるウィジェットを望んでいると思います。
これに関する公式のドキュメントを見つけることができませんでした。唯一見つけたのは、ホーム画面のウィジェットを取得してロック画面に配置するアプリだけでした。
真のロック画面ウィジェットの作成についてどこで学んだかについての手がかりはありますか?
ロック画面の操作が難しい。Android では、2 つのウィンドウ フラグ (FLAG_SHOW_WHEN_LOCKED と FLAG_DISMISS_KEYGUARD) を使用した基本的な操作が可能です。FLAG_SHOW_WHEN_LOCKED は、セキュリティが有効な場合でもロック画面の上に表示されるという点でかなり一貫して機能します (セキュリティはバイパスされず、別の非 FLAG_SHOW_WHEN_LOCKED ウィンドウに切り替えることはできません)。
音楽の再生中など、一時的なことをしているだけであれば、ほとんど問題はありません。カスタム ロック画面を作成しようとしている場合、すべての異なる Android プラットフォームで多くの通常とは異なる操作が行われます。(「ヘルプ! HTC フォンを再起動しないとアラームをオフにできません」)。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html
FLAG_SHOW_WHEN_LOCKED
ウィンドウ フラグ: 画面がロックされているときにウィンドウを表示できるようにするための特別なフラグ。
FLAG_DISMISS_KEYGUARD
ウィンドウ フラグ: ウィンドウを設定すると、キーガードが安全なロック キーガードでない場合にのみ、ウィンドウによってキーガードが解除されます。このようなキーガードはセキュリティ上必要ないため、ユーザーが別のウィンドウに移動しても再度表示されることはありません (FLAG_SHOW_WHEN_LOCKED とは対照的に、安全なキーガードと安全でないキーガードの両方を一時的に非表示にするだけで、ユーザーが別のウィンドウに移動すると確実に再表示されます)。それらを非表示にしない別の UI)。FLAG_SHOW_WHEN_LOCKED も設定されていない限り、キーガードが現在アクティブで安全 (ロック解除パターンが必要) である場合、ユーザーはこのウィンドウを表示する前に確認する必要があります。定数値: 4194304 (0x00400000)
ロック画面ウィジェットの公式ドキュメントはこちら
プロジェクトにロック画面ウィジェットを実装する必要がありました。その過程で、私はいくつかのリソースを蓄積しました。
AppWidget
クラスを使用してこれを行うことができます。AppWidgetHost
次に、 Android APIのクラスを使用して、ロック画面をウィジェットのホストにします。この部分の実行方法はわかりませんが、mylockandroid (以下のリンク) などの既存の実装がいくつかあります。http://code.google.com/p/mylockforandroid/ (NB このコードは古いバージョンの Android 用です。Android 4.2 以降にはロック画面ウィジェットのサポートが組み込まれています)
http://mylockandroid.blogspot.com/2010/03/widget-lockscreen-beta-11-r2.html