2017-05-24 4 views
3

기기를 기기 소유자로 설정하려면 tutorial을 따라했습니다. 이 자습서에는 'adb를 사용하여 장치 소유자를 설정하는'절이 있습니다.기기에 이미 여러 사용자가있어 기기 소유자를 설정하지 못했습니다.

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) 

나는이 SO link과 도움 디에고 Plascencia 라라의 대답은 다음이 나에게 오류를 준

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

: 튜토리얼 여기 키오스크 모드 데모 앱을 설치 한 후, 다음 명령을 실행 말한다 나

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

없애하지만 여전히 다음과 같은 오류가 adb shell dpm set-device-owner sdg.example.kiosk_mode/.AdminReceiver 명령을 실행 한 후 발생 :

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

이 게시물은 DPM 명령에 정말 좋은 개요를 제공합니다 게시물의 끝 부분 http://florent-dupont.blogspot.fr/2015/01/android-shell-command-dpm-device-policy.html

을이 업데이트는 추가되었습니다 는 "장치 소유자 만, 준비되지 않은 장치를 설정할 수 있습니다 그것을하지 않는 한 "adb"에 의해 시작되었습니다.이 경우 기기와 연결된 계정이없는 경우 허용합니다. "라고 소스 코드가 말합니다. 따라서 Gmail과 같은 계정이 없는지 확인한 후 사용하시기 바랍니다. dpm 명령 "

기기 소유자 U로 설치 및 설정하는 것이 좋습니다 dpm 후에 계정을 설정하지 않고 Google 마법사를 거치고 설정에서 개발자 모드를 사용 설정하고 마지막으로 "USB 디버깅"을 사용 설정합니다.

3

장치를 공장에서 다시 설정하지 않고이 문제를 해결할 수있는 방법이 있습니다. 기기에서 모든 계정을 삭제하기 만하면됩니다 (설정 -> 계정에서). 이렇게하기 전에 데이터를 동기화하여 나중에 복원 할 수 있습니다. 모든 계정을 제거한 후, 휴대폰을 컴퓨터에 연결하고 명령을 실행

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} 

이 성공적으로 자신을 고려해야합니다. 이제 이전에 제거한 모든 계정을 다시 추가 할 수 있습니다.

또 다른 방법이 :이 질문에 스티브 Miskovetz에 의해 지적, 공장 재설정하면 이전 장치의 소유자로 응용 프로그램을 설정하는 방법 중 하나입니다, 휴대 전화 (예를 들어 Gmail에서 계정) 계정을했다. 하지만 Android 및/또는 일부 휴대 전화의 최신 버전에서는 초기화 후에 Google 계정을 설정하지 않으면 앞으로 나아갈 수 없습니다. 따라서이 문제를 해결하려면 Google 계정을 등록하고 휴대 전화가 정상 작동 상태로 돌아 왔을 때 설정 -> 계정으로 이동하여 해당 계정을 삭제하십시오. 이제 필요한 것은 enable developer mode and then USB debugging입니다. 그런 다음 휴대 전화를 컴퓨터에 연결하고 adb shell dpm set-device-owner sdg.example.kiosk_mode/.AdminReceiver 명령을 실행하십시오.

관련 문제