1

x時間が経過した後(アラームマネージャーを使用)、アプリでキーガードを再度有効にしようとしています。基本的に、ここに私がしていることがあります:

5 分後に画面ロックが有効になるように設定したとします。

  1. 私のアプリが起動し、キーガードを無効にします - うまくいきます!
  2. 3分後に画面をロックするタイマーを(アラームマネージャーを使用して)作成すると、ログにアラームが3分で鳴り、キーガードを再度有効にするコードが開始されることがわかります。5分後に画面が消え、電源ボタンをクリックするとキーガードが有効になりました-うまくいきました! 基本的に、画面がオンになっている間にすべてが行われている限り、すべてが正常に機能します。

ここで、上記と同じシナリオのままにして、ステップ 2 を次のように変更するとします。

  1. 同上
  2. 10分後に画面をロックするタイマーを(アラームマネージャーを使用して)作成します。5 分後に画面がオフになり、10 分後にアラームが正しくオフになり、キーガードが再度有効になっていることがログに表示されます。ただし、その後電源ボタンをクリックすると、ロック画面に遭遇することなくアプリに入ることができます. 電源ボタンをクリックするか、画面が再び消えるのを待つと、ロック画面が表示されます。

これは、キーガードを再度有効にすると、画面が再びオンになった後にのみ有効になり、画面がオフになっている間は有効にできないことを示しているようです。私は間違っていますか、それとも別の方法がありますか? 画面がオフのときにコードがロックガードを再度有効にしても、ユーザーをロック画面に戻せるようにしたいと考えています。

ありがとう!

4

1 に答える 1

0

答えは使用することでした:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, this.getClass().getSimpleName());
wl.acquire();

キーガードを再度有効にする前に

于 2014-06-15T22:56:24.730 に答える