Мое приложение имеет активность, запускаемую BroadcastReceiver, когда получена передача android.intent.action.BOOT_COMPLETED.Android FLAG_SHOW_WHEN_LOCKED и блокировка блокировки клавиатуры
Активность должна быть показана на весь экран над Защитой от блокировки клавиатуры (безопасная). В работе используется тема Theme.NoTitleBar.Fullscreen, установленная в манифесте приложения и WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED, чтобы поместить Keyguard.
Я не пытаюсь заменить или отключить блокировку клавиатуры любым способом. Активность должна показывать только некоторую диагностическую информацию об устройстве, и она должна оставаться активной до тех пор, пока пользователь не закроет ее.
Итак, устройство загружается, обычно появляется клавиатурная защита и запускается активность через несколько секунд. Активность отображается на клавиатуре в полноэкранном режиме без заголовка. Все это отлично работало на моих тестовых устройствах Sony и Samsung.
Сегодня я тестировал приложение на устройстве LG G2 (Android 4.4.2) и заметил странную проблему. Проблема в том, что полноэкранная активность отменяется (приостанавливается), а keyguard снова воспитывается.
Я провел половину дня, проходя через код и пытаясь выяснить, что вызывает подобное поведение. Затем, наконец, я заметил, что моя активность отклоняется каждый раз, когда системное уведомление отображается в строке заголовка. В моем случае уведомление «Battery full» и «Отключить, чтобы сэкономить аккумулятор». У меня не было возможности проверить, но, вероятно, это произойдет и с другими уведомлениями.
Есть ли способ подавить системные уведомления или игнорировать, поэтому активность в полноэкранном режиме не будет приостановлена?
Я пробовал, не работал. Странно то, что когда у меня кабель не подключен (не заряжается), тогда все работает нормально. Я могу даже прокручивать экранную область и строку состояния, и она прекрасно выглядит в полноэкранном режиме, не отпуская ее. – jjarv
Оказалось, что это не связано напрямую с панелью уведомлений. После нескольких тестов я узнал, что устройство LG имеет настройку: Подключение к ПК -> USB-соединение -> «Попросить подключиться». Когда этот флажок снят, все работает нормально, если проверено действие полноэкранного режима отклонено. Любые идеи, как контролировать это? – jjarv