注意事项
设备管理员模式不需要反复连接电脑设置,只需要配置一次,重启或升级系统都没有影响。
但是在执行命令之前需要对手机进行一些设置,具体如下:
- 小米用户需要开启「USB 调试(安全设置)」关闭「MIUI 优化」
- 所有手机进入「设置 - 帐户」,删除所有的帐户,包括你的 Google、小米、华为、OPPO、vivo等系统帐号(像OPPO和vivo这样安装需要登录账户的可以之后再登录回来)
- 如果你之前设置过多用户或开启过手机自带的访客模式、应用双开等,也需要一并关闭或删除(之后可以再打开)
常见问题
问题1:提示 “Not allowed to … already several accounts on the device”
说明手机上的账户没有删干净,这时候需要注销手机上的所有账户,包括 Google 账号和系统自带的如小米账号、华为账号、OPPO/vivo账号等,另外索尼手机需要拔掉 SIM 卡重启。
问题2:提示 “Not allowed to … already several users on the device”
说明手机的多用户或应用双开没删干净或者关闭,请删除或关闭所有的多用户、访客模式以及应用双开。
问题3:提示 “Trying to set the device owner, but device owner is already set.”
说明手机已经设置了其他 APP 为设备管理员,一台手机上只能有一个设备管理员。
问题4:MIUI 用户提示 “Neither user xxx nor current process has android.permission.MANAGE_DEVICE_ADMINS”
这个时候需要手动在系统设置- 开发者设置里开启「USB 调试(安全设置)」,如果任然不可以,那么就关闭 MIUI 优化重试。
问题5:尝试完以上步骤还是无法设置DeviceOwner权限
但是在有些机型上即便重置了手机,发现还是设置不了DeviceOwner权限,那就说明这台手机存在隐藏账户或者用户了,这时候我们可以通过adb命令来获取手机账户信息从而查看设置不了权限的原因。
查看手机账户(Account):
adb shell dumpsys account
如果账户数目大于0,则请查看手机账户管理,是否有账户存在,存在的账户要退出或者删除;如果没有看到账户,那可能是隐藏账户,需要重置手机,然后再重新设置权限,如下图是重置手机后的结果:
查看手机用户(User):
adb shell dumpsys user
Android 6.0以后,设置DeviceOwner会检测手机里面user数目,如果大于1个则不能设置DeviceOwner权限。
问题6:手机重置之后仍然无法设置DeviceOwner权限
重置手机的时候需要注意,在系统初始化设置的时候,初始化界面上有一些选项(比如智能助手、智能桌面、用户体验计划等),能不选的就都别勾选,因为勾选了这些选项之后系统就会创建一个隐藏的账户。
问题7:提示:
java.lang.IllegalStateException: Unexpected @ProvisioningPreCondition 99
这个问题暂时解决不了,据了解OPPO以及Realme 最新的几款机型已经修改了底层源码,不支持设置DeviceOwner了。
截至发稿,我已经在小米、红米、华为、荣耀、三星、魅族、一加、HTC、努比亚、vivo这几款主流机型上验证过了将近200个机型都是可以正常激活DeviceOwner权限的,另外早期的几款OPPO手机型号也是可以的。