AccessibilityService注册的服务如何用代码开启?

如题所述,使用AccessibilityService注册的服务来实现部分手机通过ADB安装应用时需要输入用密码验证身份的过程,但是这个服务需要手动进入到辅助功能中开启,而且把App杀掉之后服务就关闭了,如何才能通过代码去直接开启这个服务呢?

2个回答

一般是不能直接打开的,但是在特定的情景下有两种方法能代码打开:
1.手机厂商api。例如华为三星都有api文档提供打开辅助功能的方法和对应的jar包、签名文件。但是这种需要公司去华为申请开发证书,而且需要承担法律约束力。流程比较长。
2.WRITE_SETTINGS 和 WRITE_SECURE_SETTINGS 权限。直接修改系统设置
a.通过厂商api获取。部分手机厂商提供该权限及对应证书,但这又回到第一步,需要申请证书。
b.adb命令赋予两个权限。然后通过Settings.Secure.putIn(。。。)赋予。这种局限也很大,需要拿到设备才可以连接adb。只有一些要求保密的行业会用这种方法,办公手机是公司发的,这种发到职员手中后可以赋予一大堆的权限,方便管理

找到adb命令了:adb shell pm grant com.test.my android.permission.WRITE_SECURE_SETTINGS

我在华为荣耀10(android9.0)示例一下,可以打开辅助功能

wuhao0134311
彩色葫芦娃 回复zanghao8888: 即使WRITE_SETTINGS方式杀进程也会关掉。但是有权限的话,可以在app开启时主动打开,或者做到app防杀adb命令不记得了,但是我确定不需要root,因为我见过银行把它添加到一个adb小工具里面,连上手机点击运行就完成了
大约一年之前 回复
zanghao8
zanghao8888 或者我第一次手动开启后,如果把App杀掉后服务也跟着关闭了,怎么能让这个服务一直运行呢?
大约一年之前 回复
zanghao8
zanghao8888 通过adb如何赋予权限啊?这个是不是需要root权限啊
大约一年之前 回复

AccessibilityService只能通过跳转到开启界面来引导开启
AccessibilityService一般不会被杀死,一键清理也没用,除非用户进入系统设置里面强制停止,或者深夜自动清理(电池优化白名单可以解决)
详细教程见:https://blog.csdn.net/weimingjue/article/details/82744146

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐