Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >让Android自动化辅助应用成为设备所有者(二)

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

作者头像
岛哥的质量效能笔记
发布于 2021-08-18 07:10:03
发布于 2021-08-18 07:10:03
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

阅读本文大约需要1.0分钟。

背景

上一篇文章《让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):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adb shell dumpsys account

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

查看手机用户(User):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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手机型号也是可以的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 岛哥的质量效能笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
让Android自动化辅助APP成为设备所有者(一)
我们之所以需要将Android自动化测试的辅助APP设置成设备所有者是为了更好的控制系统的一些行为从而让整个测试过程更稳定。
岛哥的质量效能笔记
2021/08/18
2K0
让Android自动化辅助APP成为设备所有者(一)
2022Android设备唯一标识(AndroidID,OAID等 )
想要了解 OAID,我们首先需要明白 ID 体系:想要追踪一个用户就必须先找到用户,在这个过程中,标识符(ID)就像我们的另一张身份证,它们就代表了数字化之后的你和我。
iOS Magician
2023/03/21
6.3K0
2022Android设备唯一标识(AndroidID,OAID等 )
如何实现Android系统一分为二?--系统分身
如今Android应用市场上的双开软件越来越多,譬如平行空间,双开大师,这些双开软件使得用户在同一台手机设备上使用同时登录两个微信账号,同时玩一个游戏的两个账号。这些软件相信大多数人都有所耳闻,甚至每天都在使用,看起来很厉害的样子,它们使用了什么技术呢?应用层虚拟化技术!这种技术也许你没有听过,但是想必大家使用过360安全卫士、花椒相机吧,它们也是基于应用层虚拟化技术的。
skylinelulu
2020/09/23
5.9K0
如何实现Android系统一分为二?--系统分身
🤖️ 如何逐步关闭 MIUI 无处不在的广告
最近需要给长辈置换一下手机,在有限的预算内,经过多次比较发现还是小米的硬件配置更好一些,最后也是下单了小米。
卤代烃
2022/11/08
3.6K0
🤖️ 如何逐步关闭 MIUI 无处不在的广告
前端工程师用Node.js + Appium实现APP自动化
最近在使用Appium做爬虫功能,网上全是python + Appium的教程,Appium也支持Node.js开发,作为前端工程师使用Node.js + Appium实现了自动化爬虫功能。
100000996525
2023/08/02
1.3K0
Android | 自动化测试辅助服务
今天聊聊Android的自动化测试,但这里先不讨论具体的技术方案,这些放到后面章节讨论,本文主要来跟大家分享一下自动化测试过程中一定会遇到的一些问题以及针对这些问题提供的一系列辅助服务。
岛哥的质量效能笔记
2021/08/18
4120
Android | 自动化测试辅助服务
Android自动化测试探索(一)adb详细介绍
adb,即Android Debug Bridge,它是Android开发/测试人员不可替代的强大工具
周希
2019/10/15
2.8K0
UI自动化截图哪家快,minicap截图最快!
在测试行业,基本做自动化的都用到minicap,什么要用到它呢?因为它截图都是毫秒级别,你知道stf设备共享平台核心模块是什么吗?就是minicap模块,通过ndk接口,执行minicap和minicap.so文件后指定接口,通过socket协议把图片传回来形成视频流,只是后来由于android10以上,权限收紧,特别是oppo,vivo,小米手机也就是国内厂商,权限更是没有开放,造成minicap无法使用,截图出现问题,只能通过scrcpy或者airtest的yosemite.apk 把视频流回传到兼容minicap的图片格式。目前这些可能对新手来讲难懂,但我们今天主要说的还是minicap,说的是什么呢?就是调试minicap是否兼容android发布的版本,比如现在发布了android11了,然后也有编译的android30了,那能不能截图,我android11的手机,要怎么确认,是否兼容呢?刚好小弟我,也是自己匹配了荣耀V50pro android11 minicap 的android30是否兼容,以便于把该设备,上架stf设备共享平台; 今天我分享不是怎么快,而是分享下怎么去看自己的android11的手机设备minicap是否兼容: 环境: 1.安装node11.15.0,安装完以后,通过node -v 查看版本看是否安装完成;
厦门-安仔
2021/10/26
2.9K0
App测试面试题_软件测试算法面试题汇总
https://blog.csdn.net/weixin_45912307/article/details/109501092 1. Web 端测试和 App 端测试有何不同(常见)
全栈程序员站长
2022/09/27
7480
Android自动化测试设备弹窗处理
在appium自动化测试过程中部分设备会存在各种状况影响自动化脚本的执行。如设备锁屏,安装时权限弹窗处理等等(oppo和vivo设备安装app时需要进行弹窗确认,还需要输入密码) 那么该如何处理这些设备的的状态来保证自动化运行的成功率?
清风穆云
2021/08/09
2.2K0
Android中常用的adb shell命令
参考文章 https://github.com/mzlogin/awesome-adb
全栈程序员站长
2022/07/01
3.1K0
Android中常用的adb shell命令
极光推送的简单实现方法
导入其jar包和so文件这点不再详解, 但是要注意的一点就是: 个人感觉极光的demo还是有些地方需要改进的, 不建议使用,但是里面的代码是需要我们自己拿的, 我这里主要就是拿到的服务器端发过来的消息推送。
胖虎哥
2023/05/10
1K0
极光推送的简单实现方法
腾讯视频国际版(Android)电量测试方法研究与总结
在2017年Google I/O大会上,Google发布了Google Play管理中心的新功能:Android vitals。当app在大量设备上运行时,Android vitals会收集与应用性能相关的各种匿名数据,比如:与app稳定性相关的数据、app启动时间、电量使用情况、渲染时间以及权限遭拒等等,这些数据会被分析整理后展示在Google Play管理中心的Android vitals dashboard中。Android vitals 中需要开发者重点关注的核心指标有:crash率、ANR率、excessive wakeups(过渡唤醒)、stuck wake locks(唤醒锁定卡住)。其他指标,需根据应用类型选择性关注(Android vitals中的指标总览见图1-1)。若app某些指标表现很差,会影响用户体验,并且会导致应用在Google Play商店中的等级很低、排名靠后(APP指标异常示例图见图1-2)。开发者可以通过分析Android vitals中提供的一些参照指标,采取相应的措施来优化app。
腾讯移动品质中心TMQ
2019/03/04
3.4K2
腾讯视频国际版(Android)电量测试方法研究与总结
Android适配全面总结(三)----ROM适配
版权声明:本文为博主原创文章(部分引用他人博文,已加上引用说明),未经博主允许不得转载。https://www.jianshu.com/p/f9c67a4b908e
AWeiLoveAndroid
2018/09/03
2.3K0
Android适配全面总结(三)----ROM适配
京东金融客户端用户触达方式的精细化探索与实践
Tech 导读 本文简单介绍了作者对用户触达的理解,详细介绍实现用户触达的几种方式,总结每种触达方式的实践过程,遇到的问题及解决思路。读者可借鉴本文中实现用户触达的方式,对实现用户触达可能遇到的问题有所准备,或借鉴一些文中相同问题的解决思路,对制定触达在拉新、促活、留存、变现上的应用策略提供支持。
京东技术
2023/01/05
6.5K0
京东金融客户端用户触达方式的精细化探索与实践
安卓usb调试模式还是无法连接_android usb
Android系统的手机以及平板电脑占有巨大的市场份额,当使用USB数据线完成电脑端与安卓手机端数据传输时,需要将安卓手机开启USB调试模式。
全栈程序员站长
2022/09/30
2.8K0
安卓usb调试模式还是无法连接_android usb
保证EC后台允许运行
这是因为神隐模式及省电模式导致的。 例如vivo手机管家自带省电管理,小米手机的神隐模式,自动关闭或者禁止给客户端的权限,导致悬浮窗会消失。
用户3519280
2023/07/07
4500
Android 在应用图标上设置未读消息数量
1.在使用之前首先 初始化 ,三个方法的参数分别是 应用包名/启动页的Activity及Context,四个参数的构造方法第三个是notification
黄林晴
2019/07/02
7.5K3
【科普】关于Android手机刷机的那点事
现在还在刷机的朋友可能越来越少了。但大概在六七年前,刷机是一件热门的事情。当然,这里的刷机主要指Android手机刷机,苹果手机相关的操作多半被称作是“越狱”,本文暂不提及相关内容。
喃小柯
2018/08/24
1.6K0
【科普】关于Android手机刷机的那点事
Android 上关于设备唯一标识的调研
什么是IMEI? IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。IMEI码由GSM(全球移动通信协会)统一分配,授权BABT(英国通信认证管理委员会)审受。 IMEI组成为: 1、前6位数(TAC,Type ApprovalCode)是"型号核准号码",一般代表机型。 2、接着的2位数(FAC,Final Assembly Code)是"最后装配号",一般代表产地。 3、之后的6位数(SNR)是"串号",一般代表生产顺序号。 4、最后1位数(SP)通常是"0",为检验码,备用。 一般在Android手机上可以在关于手机里面查看到 什么是IMSI? 国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。 什么是ICCID? ICCID:Integrate circuit card identity 集成电路卡识别码(固化在手机SIM卡中),简单来说就是SIM卡序列号,它拥有独一无二的特性,类似于手机的序列号,仅仅指向一张手机卡。共有20位数字组成,不同运营商编码格式不一样。并且前六位数字为运营商代码:比如中国移动的为:898600;中国联通的为:898601,中国电信的为:898603。
用户1269200
2018/12/29
3.6K0
相关推荐
让Android自动化辅助APP成为设备所有者(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验