第一步,重写AccessibilityService实现类。重写
onAccessibilityEvent(AccessibilityEvent accessibilityEvent)(这个方法是接受系统所有AccessibilityEvent事件接受回调方法)onInterrupt() (反馈中断回调接口)
这两个方法
第二步,配置AccessibilityService:
配置方法有两种:1,通过在AccessibilityService的
onServiceConnected()方法中动态配置,如下2,通过XML文件方式配置,文件格式如下:
- AccessibilityServiceInfo info = new AccessibilityServiceInfo();
- // We are interested in all types of accessibility events.
- info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
- // We want to provide specific type of feedback.
- info.feedbackType = feedbackType;
- // We want to receive events in a certain interval.
- info.notificationTimeout = EVENT_NOTIFICATION_TIMEOUT_MILLIS;
- // We want to receive accessibility events only from certain packages.
- info.packageNames = PACKAGE_NAMES;
- setServiceInfo(info);
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" //用于指定AccessibilityService监听事件的方式 android:accessibilityEventTypes="typeAllMask|typeNotificationStateChanged|typeWindowStateChanged|typeWindowContentChanged" //用于指定监听到指定方式的事件的反馈操作 android:accessibilityFeedbackType="feedbackGeneric|feedbackVisual|feedbackAudible" //设置时候接受window内容改变 android:canRetrieveWindowContent="true" //指定要监听的应用的包名 android:packageNames="view.jdz.administrator.appupdate" //指定获取指定事件View以及事件的一种过滤,一种强调 android:accessibilityFlags="flagDefault" //设置获取AccessibilityEvent事件反馈提示时长 android:notificationTimeout="2000" />3,在Manifest中注册AccessibilityService,注册方式如下
//请求AccessibilityService所需要的权限 <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE"></uses-permission> //注册重写的AccessibilityService服务<service android:name=".CustomAccessibilityService" //授予重写的服务权限 android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" > <intent-filter > //设置AccessibilityService的Action <action android:name="android.accessibilityservice.AccessibilityService"></action> </intent-filter> //如果AccessibilityService的配置是通过XML配置的,就需要应用meta-data <meta-data android:name="android.accessibilityservice" android:resource="@xml/accessibilityconfig" > </meta-data> </service>