説明できない Android の非常に興味深い動作に気付きました。次のコードを使用して電話をウェイクアップし、キーガードを無効にしています。
PowerManager.WakeLock mFullWakelock = mPowerManager.newWakeLock(
(PowerManager.SCREEN_BRIGHT_WAKE_LOCK |
PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP),
LOCK_TAG
);
mFullWakelock.acquire();
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock keyguardLock = keyguardManager.newKeyguardLock(LOCK_TAG);
keyguardLock.disableKeyguard();
ウェイク(プログラムによる)->キーガードの無効化(プログラムによる)->電源ボタンの押下(手動)->ウェイク->キーガードの無効化のサイクルがあると想像してください。電話のキーガードが無効になっているときにホームボタンを手動で押すまで、サイクルはうまく機能します。その後、電話は起動しますが、キーガードはプログラムで無効になりません。アイデアをいただければ幸いです。