Удалить владельца устройства Android
Я довольно новичок в Java и Android dev, более опытный в C++. Я создал приложение Kiosk/COSU, используя этот вопрос в качестве руководства. Я установил приложение в качестве администратора устройства, используя
adb shell dpm set-device-owner ...../.AppAdminReceiver
Я хотел бы отключить владельца активного устройства без сброса настроек устройства. Я пробовал программно использовать такие вопросы, как этот и несколько других, но, похоже, это не работает. Код выполняется, но приложение по-прежнему является владельцем устройства. Я также попытался добавить android:testOnly="true"
в AndroidManifest.xml, а затем с помощью adb shell dpm remove-active-admin ...../.AppAdminReceiver
как видно здесь, но я получаю ошибку
java.lang.SecurityException: Attempt to remove non-test admin ComponentInfo{....AppAdminReceiver} 0
,
Метод, описанный в предыдущей ссылке, кажется устаревшим в Android Oreo, для которого я создаю свое приложение.
Как я могу удалить владельца устройства в Oreo? Я не против, если это делается через ADB или программно, пока мне не нужно заводской сброс устройства.
1 ответ
Я нашел следующие способы активировать владельца устройства
- Предоставление QR-кода
- команда "adb shell dpm set-device-owner"
- Подготовка NFC
После того, как вы активировали владельца устройства, вы не сможете деактивировать его из настроек.
Есть два способа удалить владельца устройства
- Сброс к заводским настройкам
Второе можно сделать только из кода приложения владельца устройства, оно выглядит следующим образом
DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); devicePolicyManager.clearDeviceOwnerApp(this.getPackageName());
Я создал скрытую опцию в приложении, чтобы запустить это.
** Обратите внимание, что если вы хотите добавить этот код и запустить приложение для удаления привилегий владельца, приложение должно быть подписано тем же ключом.
Вы можете сделать это в настройках. Просто откройте настройки и введите "admin" в поле поиска. Затем выберите "Приложения администратора устройства", щелкните свое приложение и "Деактивируйте приложение администратора устройства".
Альтернативный путь к этой странице может быть приложения и уведомления -> прокрутите вниз и выберите Дополнительно -> Доступ к специальным приложениям -> Приложения администратора устройства