KeyguardManager не может разблокировать экран kitkat

Я заметил очень интересное поведение 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();

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


person NeviQ-OR    schedule 12.11.2014    source источник
comment
Пожалуйста, взгляните на это: stackoverflow.com/a/14519861/4098821   -  person Robbe    schedule 13.11.2014
comment
Робби, пожалуйста, опубликуйте это как ответ, и я приму его. Спасибо!   -  person NeviQ-OR    schedule 13.11.2014


Ответы (2)


Проблема в том, что срок действия блокировки истекает всякий раз, когда пользователь нажимает кнопку «Домой» или открывает уведомление. Поэтому всякий раз, когда это происходит, вы должны создать новый замок.

Я использовал это решение, и оно отлично сработало: https://stackoverflow.com/a/14519861/4098821

person Robbe    schedule 13.11.2014

person    schedule
comment
убедитесь, что ваше приложение подписано системой, иначе приведенный выше код не будет работать - person tanmeet; 04.05.2016
comment
Как я могу получить системную подпись? Я разрабатываю приложение для блокировки экрана, но Android показывает черный экран, если я разблокирую блокировку клавиатуры после нажатия кнопки предварительного просмотра приложения. Вы сталкивались с этой проблемой? - person Pethő Jonatán; 12.05.2016