前言
我们可以在系统设置->辅助功能中自定义自己的服务,来实现监控系统的PackageInstaller(安装器),并执行自动点击。
自动安装的功能比较常见,基本上各大应用市场都有这个服务。网上也有不少博文分析讲解,但是拿来的代码执行起来都有些缺陷,比如多次点击,控件获取不到,没有区分安装卸载等问题。
我自己通过在网上搜索以及测试,基本实现了一个比较完善的自动安装。
配置文件
首先在res目录下创建xml文件夹,在xml文件夹下创建一个xml文件,文件名自定义。服务的配置信息也可以在继承了AccessibilityService的类中的onServiceConnected()方法中动态配置。
详细参考链接
清单文件中配置
代码
目前可能存在的弊端
- 对于卸载操作的判定,若某个应用程序名称中包含卸载字样,在其安装时可能会判定为卸载操作。
- 辅助功能开启后,即使退出应用,服务也依然运行有效,此时安装某个应用,依然会被此服务响应进行自动安装,可以在此服务中定义一个变量,放在onAccessibilityEvent()入口处,然后通过EventBus或者自定义广播修改其属性。
- 华为Rom在安装完毕后会提示是否删除安装包,根据需求决定是否为用户执行此操作。其他Rom也可能存在类似自定义后的变化。
已测试环境
- OnePlus OxygenOS 5.1.1
- HuaWei Honor4X 6.0.1
- Android4.4.4平板
- Nexus S 4.4
- Nexus 7Ⅱ 5.1
参考链接
- Android静默安装实现方案,仿360手机助手秒装和智能安装功能
- 通过Accessibility自动安装与卸载应用
- 深入了解AccessibilityService