AccessibilityService用法
如何启动第三方的Demo程序,并模拟点击“ONE”按钮?

做法是在当前的App中通过包名启动第三方Demo程序,并配置AccessibilityService服务,通过AccessibilityService监听窗口变化,使用findAccessibilityNodeInfosByText找到要点击的按钮,调用performClick完成点击操作;比如早些年的红包插件、微信自动回复插件、自动点赞插件等都是这么实现的。
1.首先定义access_srv_config
packageNames指定需要监控的App的包名,可以是多个。"com.ricky.demo"就是当前第三方demo的包名;
// @xml/access_srv_config
<?xml version="1.0" encoding="utf-8"?>
<accessibility-service
xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/app_name"
android:accessibilityEventTypes="typeWindowStateChanged|typeWindowContentChanged"
android:accessibilityFeedbackType="feedbackAllMask"
android:packageNames="com.ricky.demo"
android:notificationTimeout="10"
android:accessibilityFlags=""
android:canRetrieveWindowContent="true"/>
2.在manifest.xml中配置service
<service android:exported="false"
android:label="自动点击Demo"
android:name=".AccessClickSrv"
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/access_srv_config"/>
</service>
3.AccessClickSrv实现
public class AccessClickSrv extends AccessibilityService {
private static final String TAG = "GK";
@Override protected void onServiceConnected() {
super.onServiceConnected();
}
@Override public void onAccessibilityEvent(AccessibilityEvent event) {
try {
AccessibilityNodeInfo rootInfo = getRootInActiveWindow();
if (rootInfo == null) {
return;
}
List<AccessibilityNodeInfo>list = rootInfo.findAccessibilityNodeInfosByText("ONE");
performClick(list.get(0));
} catch (Exception e) {
}
}
@Override public void onInterrupt() {
}
private void performClick(AccessibilityNodeInfo targetInfo) {
targetInfo.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
}
//启动服务
Intent intent = new Intent(this, AccessClickSrv.class);
startService(intent);
需要手动进入辅助功能,将“自动点击demo”权限授予当前App,如下:

本文介绍了如何使用AccessibilityService启动第三方应用并模拟点击操作,如在Demo程序中点击'ONE'按钮。通过配置 AccessibilityService,监听窗口变化,找到目标按钮并执行performClick实现自动点击。此技术常用于红包插件、自动回复等应用。
9308

被折叠的 条评论
为什么被折叠?



