У вас есть 100% использование Chrome или Firefox?
Проще сделать то, что вы говорите, разработав приложение для киоска с помощью настраиваемого WebView, который показывает только веб-страницу, которую вы хотите показать. Я мог ошибаться в этом, но я считаю, что WebViews на Android технически Chrome (или что-то в этом роде) на заднем конце, но в любом случае, используя его, я сомневаюсь, что вам нужно будет беспокоиться об обновлениях. Однако это не то, о чем вы просили ... поэтому я опишу решение с помощью Chrome или Firefox.Мое решение также означает, что вам нужно иметь доступ к устройствам, загружающим ваше программное обеспечение, хотя это не коммерческое приложение, потому что вам нужен ADB.
Возможно установить приложение Kiosk на Android только для использования Chrome или Firefox, и это легко сделать, если вы установите приложение, которое вы загружаете на устройство (чтобы выполнить любую задачу, которая вам нужна), поскольку владельца устройства. Это легко сделать через ADB с помощью командной строки или терминала Android Studio.
Just FYI ... Я не уверен, что установка «истинного» приложения для киоска возможна без привилегий владельца устройства, вы не можете заблокировать приложение на экране без него. В случае, о котором я рассказываю, вы получаете истинную реализацию киоска с использованием владельца устройства, а не отличную работу, которая имитирует такие функции, как большинство приложений, которые вы видите на рынке, однако я бы также поспорил, что эти приложения имеют некоторый тип привилегии администратора устройства, которые менее эффективны, чем владельцы устройств, но все же мощные.
«Реальный» способ, который я опишу, будет выполнен через ADB (или в командной строке) с похожим фрагментом следующей команды (я использовал это в недавнем корпоративном приложении, которое похоже на то, что вы описываете):
adb shell dpm set-device-owner
com.viatechsystems.guestservices/android.app.admin.DeviceAdminReceiver
- Вы бы заменить "com.viatechsystems.guestservices" с именем пакета вашего приложения киоска. Вы получите сообщение подтверждения на консоли после того, как владелец устройства будет установлен через ADB, но поймите, что эта команда может выйти из строя, если владелец устройства уже установлен каким-либо другим способом. Чтобы устранить эту проблему, перезагрузите устройство и повторите попытку, и вы должны быть добрым.
Что касается блокировки вашего приложения (или в вашем случае Chrome или Firefox, просто узнайте, что такое имя пакета) в режиме киоска после того, как владелец устройства был установлен, вам нужно запустить этот фрагмент или что-то еще как это, в основной деятельности вашего приложения:
DevicePolicyManager DPM =
(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName ownerName = new
ComponentName(WHATEVER_CLASS_YOU_USE_TO_DISABLE_APPS.this
DeviceAdminReceiver.class);
//this.getPackageName() GETS CURRENT PACKAGE
String[] packages = {
//THIS IS CURRENT APP
this.getPackageName()
//YOU NEED TO USE CHROME OR FIREFOX PACKAGE
//NAME HERE INSTEAD FOR WHAT YOU WANT
};
DPM.setLockTaskPackages(ownerName, packages);
startLockTask(); //LOCKS PACKAGES IN KIOSK MODE
Теперь, когда должен делать то, что вам нужно, однако, в случае моего недавнего приложения я должен также гарантировать, что если пользователь каким-то образом вышел из режима киоска (который является технически возможно при перезагрузке, даже при использовании загрузочного прослушивателя), они могли бы только открыть приложение, которое я хотел, и ничего больше.
Для этого вам нужно скрыть/отключить приложения с привилегиями владельца устройства, которые вы достигли ранее, когда вы настраиваете собственное приложение для блокировки Chrome, Firefox или любого другого, что вы хотите в режиме киоска.
Я могу рассказать вам, как найти все имена пакетов на устройстве, на которое вы загружаете приложение, но я предполагаю, что вы можете понять это ... подскажите, есть ли у вас проблемы, вы используете диспетчер пакетов Android.
В этом случае пакет/приложение, которое мы хотим скрыть, это «com.example.HideThisPackage», просто замените его любым именем пакета, которое вы хотите скрыть/отключить в качестве владельца устройства.
//THIS VARIABLE AGAIN
DevicePolicyManager DPM =
(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
//THIS VARIABLE AGAIN
ComponentName ownerName = new
ComponentName(WHATEVER_CLASS_YOU_USE_TO_DISABLE_APPS.this
DeviceAdminReceiver.class);
//USED TO HIDE INSTALLED APPS AFTER DEVICE OWNER ENABLED
DPM.setApplicationHidden(ownerName, com.example.HideThisPackage, true);
Тогда вы должны быть хорошо идти, дайте мне знать, если вам нужны какие-либо дополнительные указатели, но я использовал код почти так же, как это делать то, что кажется, что вы описываете несколько месяцев назад.
после некоторых исследований я обнаружил, что в некоторых браузерах есть «режим приложения». Исторически сложилось, что Prism и Mozilla без хрома для firefox. Это было устаревшим .... хром получил «режим приложения», если вы запустили его с ключом -app на cmdline. Здесь я нашел несколько переключателей https://peter.sh/experiments/chromium-command-line-switches/ – sancelot