Я разрабатываю приложение для отслеживания, и мне нужно запретить пользователям отключать основные датчики, используемые для определения местоположения. Я не могу изменить ПЗУ устройств или иметь root-доступ (или, по крайней мере, было бы очень нежелательно), но я подумал об использовании API администрирования устройств для выполнения этих функций в режимах «Владелец профиля» или «Владелец устройства». Я в основном ищу способ заблокировать эти функции в настройках Android.
Я не уверен, возможно ли это и как это сделать, я не нашел примеров в GitHub для приложений, которые это реализовали. Кто-нибудь может дать мне свет, какой-нибудь пример или конкретную документацию?
Я пытался следовать этим трем документам, но безуспешно в поиске решения этой конкретной функции:
https://source.android.com/devices/tech/admin
https://developer.android.com/guide/topics/admin/device-admin
https://developers.google.com/android/management/introduction
Это выдержка из того, что я пробовал:
setUserRestriction(UserManager.DISALLOW_CONFIG_WIFI, true);
setUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS, active);
setUserRestriction(UserManager.DISALLOW_CONFIG_BLUETOOTH, active);
private void setUserRestriction(String restriction, boolean disallow){
if (disallow) {
mDevicePolicyManager.addUserRestriction(mAdminComponentName, restriction);
} else {
mDevicePolicyManager.clearUserRestriction(mAdminComponentName,
restriction);
}
}
DISALLOW_CONFIG_BLUETOOTH
Добавлено в API уровень 18
общедоступная статическая конечная строка DISALLOW_CONFIG_BLUETOOTH
Указывает, запрещено ли пользователю настраивать Bluetooth. Это не ограничивает пользователя от включения или выключения Bluetooth. Значением по умолчанию является false.
Это ограничение не мешает пользователю использовать Bluetooth. Чтобы полностью запретить использование Bluetooth на устройстве, используйте DISALLOW_BLUETOOTH.
Это ограничение не действует в управляемом профиле.
Ключ для пользовательских ограничений.
Тип: Boolean