accessibilityservice 自动安装 取消删除安装包

这个项目从开始,到现在慢慢熟悉花了我三天的时间。终于有点成果了,给大家展示一哈 

1.配置文件

<?xml version="1.0" encoding="UTF-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityEventTypes="typeAllMask"
    android:accessibilityFeedbackType="feedbackGeneric"
    android:accessibilityFlags="flagDefault"
    android:canRequestTouchExplorationMode="true"
    android:canRetrieveWindowContent="true"
    android:description="@string/accessibility_service_description"
    android:notificationTimeout="100" />
<!--     android:packageNames="com.example.android.apis" -->
在这里搞死我了,针对单独安装的不能添加android:packageNames=" com.example.android.apis" 我估计是这个导致的,我把这个删除了,果然 好了


注册文件

<service
            android:name="com.z.autoinstallationappaccessibilityservices.AutoInstallationAppAccessibilityservices"
            android:label="@string/accessibility_server_name"
            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" >
            <intent-filter>
                <action android:name="android.accessibilityservice.AccessibilityService" />
            </intent-filter>
            <!-- 调用配置文件 -->
            <meta-data
                android:name="android.accessibilityservice"
                android:resource="@xml/accessibility_service_config" /> <!-- 注意此处 -->
        </service>
千篇一律。。。

核心代码

private void processinstallApplication(AccessibilityEvent event) {

		if (event.getSource() != null) {
			checkTitle(event.getSource(), "BuildingAccessibilityServices");
			if (event.getPackageName().equals("com.android.packageinstaller")) {
				List<AccessibilityNodeInfo> unintall_nodes = event.getSource().findAccessibilityNodeInfosByText("安装");
				if (unintall_nodes != null && !unintall_nodes.isEmpty()) {
					AccessibilityNodeInfo node;
					for (int i = 0; i < unintall_nodes.size(); i++) {
						node = unintall_nodes.get(i);
						if (node.getClassName().equals("android.widget.Button") && node.isEnabled()) {
							node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
						}
					}
				}

				List<AccessibilityNodeInfo> next_nodes = event.getSource().findAccessibilityNodeInfosByText("下一步");
				if (next_nodes != null && !next_nodes.isEmpty()) {
					AccessibilityNodeInfo node;
					for (int i = 0; i < next_nodes.size(); i++) {
						node = next_nodes.get(i);
						if (node.getClassName().equals("android.widget.Button") && node.isEnabled()) {
							node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
						}
					}
				}

				List<AccessibilityNodeInfo> ok_nodes = event.getSource().findAccessibilityNodeInfosByText("打开");
				if (ok_nodes != null && !ok_nodes.isEmpty()) {
					AccessibilityNodeInfo node;
					for (int i = 0; i < ok_nodes.size(); i++) {
						node = ok_nodes.get(i);
						if (node.getClassName().equals("android.widget.Button") && node.isEnabled()) {
							node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
						}
					}
				}
<span style="white-space:pre">				</span>//取消删除安装包
<span style="white-space:pre">				</span>List<AccessibilityNodeInfo> cancel_nodes = event.getSource().findAccessibilityNodeInfosByText("取消");
<span style="white-space:pre">				</span>if (cancel_nodes != null && !cancel_nodes.isEmpty()) {
<span style="white-space:pre">					</span>AccessibilityNodeInfo node;
<span style="white-space:pre">					</span>for (int i = 0; i < cancel_nodes.size(); i++) {
<span style="white-space:pre">						</span>node = cancel_nodes.get(i);
<span style="white-space:pre">						</span>if (node.getClassName().equals("android.widget.Button") && node.isEnabled()) {
<span style="white-space:pre">							</span>node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
<span style="white-space:pre">						</span>}
<span style="white-space:pre">					</span>}
<span style="white-space:pre">				</span>}

			}
		}

	}


我是我在网上看的第一种方法,如果下面的方法试验成功我会在我的博客体现。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值