Нашел еще одну возможную технику на этом форуме forum . Цитируя это сообщение:
Используя следующие методы, вы можете создать приложение, которое предотвратит воспроизведение «обычных» пользователей с помощью чего-либо, кроме вашего приложения.
Приложение состоит из двух модулей. Основная деятельность и услуга. Служба настроена на запуск при загрузке. Когда служба запускается, она проверяет, работает ли действие или нет. Если он не работает, он использует таймер для запуска основного действия.
Когда действие приостановлено, он запускает службу за одну секунду: Код:
Sub Activity_Pause (UserClosed As Boolean) If kiosk Then StartServiceAt(KioskService, DateTime.Now + 1 * DateTime.TicksPerSecond, false) End Sub
Если пользователь нажимает на главный экран, главный экран будет отображаться в течение нескольких секунд. Однако ваше приложение вернется на передний план через несколько секунд, и пользователь не сможет взаимодействовать с другими приложениями или изменить настройки.
Служба настроена на работу переднего плана. Это предотвращает убийство нашей компанией Android. Нажмите кнопку «Стоп», чтобы отключить режим киоска.
Кажется, что файл [k2k] с кодом режима доступен для скачивания .
Внутри файла манифеста Android попробуйте добавить следующий атрибут для своей MainActivity:
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustPan">
...
</activity>
, который делает панораму представлений, когда появляется программная клавиатура, но окно действия не изменяется. Посмотрите, имеет ли это какое-то значение. Если изменение размера будет работать лучше, вместо атрибута "adjustPan"
вы можете добавить "adjustResize"
. Надеюсь, что один из двух сделает трюк за вас.