让Android自动化辅助应用成为设备所有者(二)

简介: 上一篇文章《让Android自动化辅助APP成为设备所有者(一)》分享了如何将应用设置为设备所有者以及如何移除设备所有者权限,但是Android手机品牌和型号众多,特别是国产手机系统时常添加各种中国特色功能,因此其与设备管理员模式的兼容性或多或少存在一些问题,今天专门来讲讲我遇到的一些常见机型兼容性问题。

注意事项


设备管理员模式不需要反复连接电脑设置,只需要配置一次,重启或升级系统都没有影响。


但是在执行命令之前需要对手机进行一些设置,具体如下:

  • 小米用户需要开启「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

image.png

如果账户数目大于0,则请查看手机账户管理,是否有账户存在,存在的账户要退出或者删除;如果没有看到账户,那可能是隐藏账户,需要重置手机,然后再重新设置权限,如下图是重置手机后的结果:

image.png

查看手机用户(User):

adb shell dumpsys user

image.png

Android 6.0以后,设置DeviceOwner会检测手机里面user数目,如果大于1个则不能设置DeviceOwner权限。

问题6:手机重置之后仍然无法设置DeviceOwner权限

重置手机的时候需要注意,在系统初始化设置的时候,初始化界面上有一些选项(比如智能助手、智能桌面、用户体验计划等),能不选的就都别勾选,因为勾选了这些选项之后系统就会创建一个隐藏的账户。


问题7:提示:

java.lang.IllegalStateException: Unexpected @ProvisioningPreCondition 99

这个问题暂时解决不了,据了解OPPO以及Realme 最新的几款机型已经修改了底层源码,不支持设置DeviceOwner了。


截至发稿,我已经在小米、红米、华为、荣耀、三星、魅族、一加、HTC、努比亚、vivo这几款主流机型上验证过了将近200个机型都是可以正常激活DeviceOwner权限的,另外早期的几款OPPO手机型号也是可以的。


相关文章
|
1天前
|
监控 Java 持续交付
内部网络监控软件的Groovy应用:持续集成与部署的自动化监控
在当今高度数字化的环境中,对于内部网络的监控变得至关重要。为了保证系统的稳定性和安全性,监控软件的自动化变得越来越必要。本文将介绍如何利用Groovy编程语言实现持续集成与部署的自动化内部网络监控软件,并通过代码示例展示其实现方式。
15 3
|
20天前
|
机器学习/深度学习 人工智能 监控
【AI 现况分析】AI 大模型在自动化交易的应用
【1月更文挑战第27天】【AI 现况分析】AI 大模型在自动化交易的应用
|
23天前
|
安全 jenkins 测试技术
自动化测试与持续集成/持续交付(CI/CD)的实践与应用
自动化测试是现代软件开发不可或缺的环节,它可以有效地提高测试效率、降低测试成本。而持续集成/持续交付(CI/CD)则是一种基于自动化的软件开发流程,能够将代码的开发、构建、测试和部署等过程无缝连接起来,从而实现快速迭代和部署。本文将结合实际案例,介绍自动化测试和CI/CD的实践与应用。
23 2
|
29天前
|
存储 人工智能 自动驾驶
自动化物料搬运设备
自动化物料搬运设备
16 2
|
1月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
23 0
|
1月前
|
开发工具 Android开发
Android平台RTMP推送|轻量级RTSP服务|GB28181设备接入模块之实时快照保存JPG还是PNG?
Android平台RTMP推送|轻量级RTSP服务|GB28181设备接入模块之实时快照保存JPG还是PNG?
|
1月前
|
存储 安全 算法
Android安全性: 如何防止Android应用的逆向工程?
Android安全性: 如何防止Android应用的逆向工程?
21 1
|
1月前
|
Android开发 开发者
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
23 1
|
1月前
|
数据库 Android开发 开发者
Android基础知识:什么是Android应用的四大组件?
Android基础知识:什么是Android应用的四大组件?
34 1
|
1月前
|
测试技术 API 数据安全/隐私保护
『App自动化测试之Appium应用篇』| Appium常用API及操作
『App自动化测试之Appium应用篇』| Appium常用API及操作
53 1

热门文章

最新文章

相关产品

  • 云迁移中心