Разрешить пользователю доступ к настройкам Wi-Fi без предоставления свободы действий

Мы разрабатываем заблокированное Android-приложение в стиле киоска на стандартном планшете Samsung, который устанавливается в автомобили клиентов. Мы хотели бы, чтобы клиенты могли редактировать свои настройки Wi-Fi, не предоставляя им доступ к остальной части приложения «Настройки» (например, к панели запуска, учетным записям и т. д.).

Нам удалось запустить действие «Настройки Wi-Fi», но оно позволяет пользователю переходить в другие области.

Я не уверен, возможно ли создать собственный интерфейс для подключения к Wi-Fi, но даже если бы это было возможно, это кажется хрупким и требует много работы для чего-то довольно простого.

Есть ли способ решить это хорошо?


person aaaidan    schedule 24.01.2018    source источник


Ответы (5)


Я бы создал приложение контроллера политики устройства, которое предоставляется на устройстве в качестве владельца устройства с помощью API-интерфейсов Android Enterprise (Android for Work). https://developers.google.com/android/work/dpc/build-dpc

Как владелец устройства, вы можете перевести свое приложение в режим блокировки задач, который обычно используется для киосков. https://developer.android.com/work/cosu.html

Затем вы можете установить ограничения для пользователей:
addUserRestriction API
список ограничений пользователя
Ограничения пользователя не охватывают все в приложении настроек, но покрытие довольно хорошее.

Затем я подготавливал его с помощью NFC или считывателя QR-кода на экране приветствия мастера настройки Google. https://github.com/googlesamples/android-NfcProvisioning

Вы также можете взглянуть на существующие реализации EMM/MDM с открытым исходным кодом, такие как WSO2.

Другие ссылки:
Как включить блокировка задач на рабочих устройствах Android 5.0
Как сделать так, чтобы было только одно приложение

person Steve Miskovetz    schedule 26.01.2018
comment
посмотрите, поможет ли эта ссылка, 42gears.com /блог/ - person RPB; 23.02.2018

Я также работал над приложениями типа киоска, и мы должны указать параметры для изменения настроек Wi-Fi и дисплея. Поэтому мы использовали эти команды при нажатии кнопки для настроек Wi-Fi и дисплея.

btnWifiSetting.setOnClickListener {

            startActivityForResult( Intent(android.provider.Settings.ACTION_WIFI_SETTINGS), 0);
        }

И для настройки дисплея

btnDisplay.setOnClickListener {
            startActivityForResult(Intent(android.provider.Settings.ACTION_DISPLAY_SETTINGS),0)
        }

И вы также можете проверить полный список доступных команд здесь

https://ourcodeworld.com/articles/read/318/how-to-open-android-settings-programmatically-with-java

person Mudassir Khan    schedule 19.02.2019

попробуйте LineAgeOS

https://lineageos.org/

Ваше требование требует доступа к системному уровню ОС, таким образом, у вас есть доступ и настройка параметров WIFI, прежде чем выпускать сам телефон.

person niXful-Autistic    schedule 24.01.2018

можно попробовать так.

WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                if (wifiManager.isWifiEnabled()) {
                    wifiManager.setWifiEnabled(false);
                    Tools_WiFi.setImageResource(R.drawable.tool_wifi_off);
                } else {
                    wifiManager.setWifiEnabled(true);
                    Tools_WiFi.setImageResource(R.drawable.tool_wifi_on);
                }
person Madhav Anadkat    schedule 24.01.2018

Вы можете попробовать это:

startActivityForResult(new Intent(Settings.ACTION_WIFI_SETTINGS), 0);

Надеюсь, это поможет вам.

person GunSky7    schedule 20.12.2018