これらのメソッドの代わりに WindowManager.LayoutParams クラスの FLAG_DISMISS_KEYGUARD と FLAG_SHOW_WHEN_LOCKED を使うことが推奨されています。
■ FLAG_DISMISS_KEYGUARD
このフラグが設定されると、secure lock keyguard でない場合、ウィンドウによって keyguard が表示されなくなる。security が必要でない keyguard では、ユーザーが他のウィンドウに移動したときに再表示されない(反対に FLAG_SHOW_WHEN_LOCKED では、secure、non-secure 両方の key guard を一時的に隠して、ユーザーがこれらを隠さない設定の他の UI に移動したときに再表示する。
FLAG_SHOW_WHEN_LOCKED が同時に設定されていないと、keyguard が現在アクティブでユーザーより secure な場合(= unlock pattern を要求している場合)、ウィンドウを表示する前に lock pattern を確認する必要がある。
■ FLAG_SHOW_WHEN_LOCKED
スクリーンがロックされたときに Windows に表示させるための特別なフラグで、このフラグをセットすると、アプリケーションウィンドウが key guard や他のロックスクリーンよりも優先される。
FLAG_KEEP_SCREEN_ON と組み合わせて使うことで、画面をオンした後、 key guard を表示する前に直接ウィンドウを表示できる。
FLAG_DISMISS_KEYGUARD と組み合わせて使うことで、自動で non-secure keyguards を表示させないようにできる。このフラグは一番上の full-screen window にのみ適用される。
関連するフラグ
■ FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
■ FLAG_KEEP_SCREEN_ON
- public class KeyguardSampleActivity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Window window = getWindow();
- // lock pattern を設定していても、
- // このアプリ起動中は画面オン時にロックはでない
- // 別のアプリやホームに移動するときにロックがでる
- window.setFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED,
- WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
- // lock pattern を設定していない場合、
- // このアプリ起動中は画面オン時にロックはでない
- window.setFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD,
- WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
- }
- }
■ まとめ
1. lock pattern あり、FLAG_SHOW_WHEN_LOCKED
このアプリ起動中は画面オン時にロックはでない
別のアプリやホームに移動するときにロックがでる
2. lock pattern あり、FLAG_DISMISS_KEYGUARD
普通にロックがでる
3. lock pattern あり、FLAG_SHOW_WHEN_LOCKED, FLAG_DISMISS_KEYGUARD
このアプリ起動中は画面オン時にロックはでない
別のアプリやホームに移動するときにロックがでる
4. lock pattern なし、FLAG_SHOW_WHEN_LOCKED
このアプリ起動中は画面オン時にロックはでない
別のアプリやホームに移動するときにロックがでる
5. lock pattern なし、FLAG_DISMISS_KEYGUARD
このアプリ起動中は画面オン時にロックはでない
別のアプリやホームに移動するときもロックはでない
6. lock pattern なし、FLAG_SHOW_WHEN_LOCKED, FLAG_DISMISS_KEYGUARD
このアプリ起動中は画面オン時にロックはでない
別のアプリやホームに移動するときもロックはでない
0 件のコメント:
コメントを投稿