Я заметил очень интересное поведение 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();
Представьте, что есть цикл пробуждения (программно) -> отключить блокировку клавиатуры (программно) -> нажать кнопку питания (вручную) -> пробуждение -> отключить блокировку клавиатуры. Цикл отлично работает, пока я вручную не нажму кнопку «Домой», когда защита клавиатуры телефона отключена. После этого телефон просыпается, но блокировка клавиатуры больше не отключается программно. Буду признателен за любые идеи!