Удалить владельца устройства 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 ответ

Я нашел следующие способы активировать владельца устройства

  1. Предоставление QR-кода
  2. команда "adb shell dpm set-device-owner"
  3. Подготовка NFC

После того, как вы активировали владельца устройства, вы не сможете деактивировать его из настроек.

Есть два способа удалить владельца устройства

  1. Сброс к заводским настройкам
  2. Второе можно сделать только из кода приложения владельца устройства, оно выглядит следующим образом

    DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
    devicePolicyManager.clearDeviceOwnerApp(this.getPackageName());
    

Я создал скрытую опцию в приложении, чтобы запустить это.

** Обратите внимание, что если вы хотите добавить этот код и запустить приложение для удаления привилегий владельца, приложение должно быть подписано тем же ключом.

Вы можете сделать это в настройках. Просто откройте настройки и введите "admin" в поле поиска. Затем выберите "Приложения администратора устройства", щелкните свое приложение и "Деактивируйте приложение администратора устройства".

Альтернативный путь к этой странице может быть приложения и уведомления -> прокрутите вниз и выберите Дополнительно -> Доступ к специальным приложениям -> Приложения администратора устройства

Другие вопросы по тегам