何人かのユーザーから、私のアプリ用の Android ロック画面ウィジェットについて問い合わせがありました。彼らは、ロック画面に常駐し、アプリを操作できるウィジェットを望んでいるのだと思います。
これに関する公式ドキュメントは見つかりませんでした。唯一見つかったのは、ホーム画面のウィジェットを取得してロック画面に配置するアプリでした。
真のロック画面ウィジェットの構築についてさらに詳しく学べる場所について、何か手がかりはありますか?
ベストアンサー1
ロック画面の操作は困難です。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);
android.android.com/reference/android/view/WindowManager.LayoutParams.html を参照してください。
FLAG_SHOW_WHEN_LOCKED
ウィンドウ フラグ: 画面がロックされているときにウィンドウを表示するための特別なフラグ。
FLAG_DISMISS_KEYGUARD
ウィンドウ フラグ: 設定すると、ウィンドウによってキーガードが閉じられます (ただし、キーガードがセキュア ロック キーガードではない場合のみです)。このようなキーガードはセキュリティ上必要ないため、ユーザーが別のウィンドウに移動しても再び表示されることはありません (FLAG_SHOW_WHEN_LOCKED とは対照的です。FLAG_SHOW_WHEN_LOCKED は、セキュア キーガードと非セキュア キーガードの両方を一時的に非表示にするだけで、ユーザーがそれらを非表示にしない別の UI に移動すると、それらのキーガードが再び表示されるようにします)。キーガードが現在アクティブでセキュア (ロック解除パターンが必要) な場合、FLAG_SHOW_WHEN_LOCKED も設定されていない限り、ユーザーはこのウィンドウを表示する前にそれを確認する必要があります。定数値: 4194304 (0x00400000)