Режим Android-киоска без блокировки экрана

Я пытаюсь настроить приложение Android Single Use. Я использую Huawei P8 Lite с Android 6.0 и Samsung Galaxy A3 2017 с Android 6.0. Я установил приложение на владельца устройства, и все работает хорошо. Я деактивировал сообщения Toast через adb и установил кнопку «Домой» для приложения. Так что все работает нормально. Когда я запускаю приложение, вы больше не можете выйти из него, даже при перезагрузке. Но теперь осталось 2 проблемы. На Samsung отлично работает деактивация сообщений Toast с помощью кода adb.

Набор приложений оболочки adb для Android TOAST_WINDOW

а на хуавей не работает. Не показывает ошибку.

Вторая проблема у меня возникла с самсунгом. Когда я перезапускаю Huawei и нажимаю кнопку «Домой», я попадаю прямо в приложение, не проводя пальцем по экрану блокировки. Когда я открываю приложение на Samsung, оно то же самое, но после перезагрузки я всегда попадаю в экран блокировки перед входом в приложение. Это небольшая проблема, потому что раскрывающееся меню можно открыть, проведя пальцем вниз. Кнопки там не работают, но я хочу попасть прямо в приложение, когда нажимаю кнопку «Домой» или «Питание».

Итак, мои вопросы: - Как отключить всплывающие сообщения на Huawei? - Как отключить весь локскрин на самсунге?

У кого-нибудь есть идея?

Спасибо


person J. Hock    schedule 16.08.2017    source источник


Ответы (1)


Чтобы обойти экран блокировки на Samsung, вы можете попробовать разбудить устройство, запустив действие, как только устройство запустится, со следующими флагами.

this.getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
    WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

скопировано из как вывести телефон Android из спящего режима?. Просто убедитесь, что вы выбрали «Нет» в качестве типа блокировки экрана или вызвали setKeyguardDisabled, что имеет тот же эффект.

Чтобы деактивировать тост, вам нужны привилегии root, поэтому ваше устройство должно быть рутировано, и вам нужно сделать

adb root & adb shell appops set android TOAST_WINDOW deny
person Fred    schedule 16.08.2017
comment
спасибо, я думаю, это очень помогает! Можете ли вы объяснить, почему деактивация тостов отлично работает на самсунге, но не на хуавее? - person J. Hock; 16.08.2017
comment
Может Хуавей не рутирован? Или вы не звонили adb root? - person Fred; 16.08.2017
comment
Самсунг тоже не рутирован, но набор приложений оболочки adb android TOAST_WINDOW deny работает нормально, а на huawei - нет. - person J. Hock; 16.08.2017
comment
Тогда, возможно, пакет android не тот, который показывает тост. Вы можете попробовать отключить toast для других системных пакетов, вы можете получить список с помощью adb shell cmd package list packages -s -e (или adb shell pm list packages -s -e в старых версиях для adb). - person Fred; 16.08.2017