Не разрешено устанавливать владельца устройства, поскольку на устройстве уже есть несколько пользователей

Я следил за этим учебник установить приложение в качестве владельца устройства. В этом учебнике есть раздел "Использование adb для установки владельца устройства". В учебнике здесь говорится, что после установки демонстрационного приложения Kiosk Mode выполните следующую команду:

adb shell dpm set-device-owner sdg.example.kiosk_mode/.AdminReceiver

Это дало мне ошибку:

adb server is out of date.  killing...
* daemon started successfully *
java.lang.IllegalStateException: Not allowed to set the device owner because there are already several users on the device
    at android.os.Parcel.readException(Parcel.java:1629)
    at android.os.Parcel.readException(Parcel.java:1574)
    at android.app.admin.IDevicePolicyManager$Stub$Proxy.setDeviceOwner(IDevicePolicyManager.java:5146)
    at com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:114)
    at com.android.commands.dpm.Dpm.onRun(Dpm.java:82)
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
    at com.android.commands.dpm.Dpm.main(Dpm.java:38)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:257)

я последовал за этот ссылка и ответ Диего Plascencia Лара помогла мне избавиться от

adb server is out of date.  killing...
* daemon started successfully *

но все же следующее ошибка возникает после запуска :

java.lang.IllegalStateException: Not allowed to set the device owner because there are already several users on the device
    at android.os.Parcel.readException(Parcel.java:1629)
    at android.os.Parcel.readException(Parcel.java:1574)
    at android.app.admin.IDevicePolicyManager$Stub$Proxy.setDeviceOwner(IDevicePolicyManager.java:5146)
    at com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:114)
    at com.android.commands.dpm.Dpm.onRun(Dpm.java:82)
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
    at com.android.commands.dpm.Dpm.main(Dpm.java:38)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:257)

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

2 ответов


существует выход из этой проблемы без заводского сброса устройства. Просто удалите все учетные записи с вашего устройства (в настройках->учетные записи). Перед этим может потребоваться синхронизировать данные, чтобы впоследствии их можно было восстановить. После удаления всех учетных записей, подключите телефон к компьютеру и выполните команду:

adb shell dpm set-device-owner sdg.example.kiosk_mode/.AdminReceiver

Если вы получите такое сообщение:

Success: Device owner set to package ComponentInfo{org.bluetooth.bledemo/org.bluetooth.bledemo.AdminReceiver}
Active admin set to component {org.bluetooth.bledemo/org.bluetooth.bledemo.AdminReceiver}

считать себя успешным. Теперь вы можете добавить все учетные записи что вы удалили ранее.

другой способ : как отметил Стив Мисковец в ответе, factory reset-один из способов установить приложение в качестве владельца устройства, если ранее ваш телефон имел учетные записи (например, учетные записи Gmail). Но в последних версиях Android и / или некоторых телефонов после сброса настроек они не позволяют двигаться вперед,если вы не установили учетную запись google. Итак, чтобы решить эту проблему, перейдите и зарегистрируйте свою учетную запись google и когда ваш телефон вернитесь в нормальное рабочее состояние, удалите эту учетную запись, перейдя в Настройки - > Учетные записи. Теперь все, что вам нужно-это включить режим разработчика, а затем отладку USB. После этого подключите телефон к компьютеру и выполните команду adb shell dpm set-device-owner sdg.example.kiosk_mode/.AdminReceiver.


этот пост дает действительно хороший обзор команды dpm: http://florent-dupont.blogspot.fr/2015/01/android-shell-command-dpm-device-policy.html

В конце сообщения это обновление было добавлено: "владелец устройства может быть установлен только на недоказанном устройстве, если он не был инициирован "adb", и в этом случае мы разрешаем это, если никакая учетная запись не связана с устройством", - говорит исходный код. Поэтому убедитесь, что у вас нет учетной записи (например, Gmail), связанной с ваш текущий набор пользователей перед использованием команды DPM"

Я рекомендую установить и установить приложение в качестве владельца устройства с помощью dpm после выполнение сброса настроек, пройдя через Мастер Google без настройки каких-либо учетных записей, включите режим разработчика из настроек и, наконец, включите "отладку USB"... Если это приемлемый вариант для вас...