Я сейчас пытаюсь понять, можно ли и как перенести корпоративное приложение CF .NET для работы на устройствах Android. Приложение на телефонах Windows Mobile запускается в режиме киоска, когда приложение запускается автоматически в полноэкранном режиме после загрузки, и пользователи не могут случайно или добровольно получить доступ к любым другим частям телефона.
Возможно ли на Android иметь только один автозапуск приложения после загрузки и предотвратить случайный (или добровольный) доступ пользователей к любым другим частям устройства Android?
android
kiosk
kiosk-mode
Эрик Х
источник
источник
Ответы:
Вы можете автоматически запускать приложения при загрузке, прослушивая
android.intent.action.BOOT_COMPLETED
намерение в BroadcastReceiver и начиная с него свою Activity. В Activity вы можете зарегистрироваться как новый домашний экран по умолчанию [1] и работать с клавишами.Я думаю, что есть некоторые случаи, с которыми вы не можете справиться без изменения фреймворка (например, долгое нажатие на главном экране, чтобы показать текущие активные приложения) - хотя я тоже мог ошибаться.
Но для прототипа этого могло быть достаточно.
Удачи мастеру!
[1]:
источник
Вы можете настроить это (отключить доступ к меню, ограничить добавление приложений и т. Д.), Чтобы включить киоск. http://code.google.com/p/android-launcher-plus/
источник
В новом Android L Preview Google анонсировал блокировку задач , которая делает именно это. Однако, похоже, ему нужен root.
источник
После того, как я искал это некоторое время, я нашел хорошее решение. Это работает только на устройствах с рутированным доступом, но я думаю, что если это только для одного приложения, то с рутированием это не должно быть проблемой.
Сделайте свое приложение пусковой установкой, добавив
к вашему фильтру намерений
Убедитесь, что ваше приложение сворачивает панель инструментов, чтобы вы не могли добраться до панели уведомлений. См. Как программно отключить строку состояния / панель уведомлений на Android? или http://blog.vogella.com/2011/02/28/android-hidding-the-status-and-title-bar/
Затем, чтобы предотвратить открытие других программ по ошибке, используйте службу специальных возможностей для проверки состояния окна измененного, сравните пакет с белым или черным списком и используйте ActivityManager.killBackgroundProcesses, чтобы убить, если он не должен запускаться.
Также посетите http://thebitplague.wordpress.com/2013/04/05/kiosk-mode-on-the-nexus-7/, чтобы узнать другой способ
источник
Запуск вашего приложения при загрузке
ЛУЧШИЙ способ добиться этого - установить приложение в качестве средства запуска.
Блокировка вашего приложения
самый надежный способ - использовать устройство с Lollipop или выше и использовать
сначала вы должны установить свое приложение в качестве владельца устройства. NB: ваше устройство не должно быть настроено: если вы зарегистрировали его, вам следует выполнить сброс настроек и пропустить регистрацию учетной записи.
чтобы иметь возможность зарегистрировать свое приложение, вы должны сначала настроить компонент DeviceAdminReceiver:
если у вас есть неподготовленное устройство, вы можете запустить следующую команду из adb ( рут не требуется )
чтобы Android не запрашивал разрешения пользователя для закрепления вашего приложения, вы должны вызвать setLockTaskPackages
Ну наконец то!
источник
Google недавно выпустил Android Management API, который позволяет легко настраивать режим киоска для любых устройств Android под управлением Android 5.1 или выше, а также устанавливать различные другие политики.
источник
Страница настройки одноцелевых устройств разработчика Android описала эти вещи, которые вы можете легко узнать оттуда.
Теперь легко настроить устройства Android 6.0 Marshmallow и более поздних версий как корпоративные одноразовые (COSU) устройства.
источник
Нашел еще один возможный метод в этом сообщении на форуме . Цитируя этот пост:
http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/10839-android-kiosk-mode-tutorial.html
Похоже, что для загрузки также доступен пример ZIP-файла с кодом режима киоска .
источник
Xposed framework может это сделать. Ему нужен root, и есть вероятность, что он не будет работать на всех без исключения платформах. Ищите метод disable () в классе android.app.StatusBarManager .
Здесь в исходном коде Android
Посмотрите здесь, как написать свой собственный модуль: Руководство по разработке Xposed
Это намного проще, чем кажется на первый взгляд. Удачи!
источник
Наряду с настройкой вашего приложения с помощью приемника BOOT и этим ответом для предотвращения расширения строки состояния это решение работает на 4.4 и выше как полноценное киоск-приложение:
Поместите в свой onCreate ():
Это полностью скроет кнопку возврата, приложения и кнопку домой.
источник