应用介绍
本文主要介绍辅助功能的使用
- 辅助功能基本原理
- 辅助功能基本配置和框架搭建
- 辅助功能实战解析
一、辅助功能基本原理
辅助功能(AccessibilityService)其实是一个Android系统提供给的一种服务,本身是继承Service类的。
从开发者的角度看,其实就是提供两种功能:查找界面元素,实现模拟点击。实现一个辅助功能服务要求继承AccessibilityService类并实现它的抽象方法。自定义一个服务类AccessibilitySampleService(这个命名可以随意),继承系统的AccessibilityService并覆写onAccessibilityEvent和onInterrupt方法。编写好服务类之后,在系统配置文件(AndroidManifest.xml)中注册服务。完成前面两个步骤就完成了基本发辅助功能服务注册与配置,具体的功能实现需要在onAccessibilityEvent中完成,根据onAccessibilityEvent回调方法传递过来的AccessibilityEvent对象可以对事件进行过滤,结合AccessibilitySampleService本身提供的查找节点与模拟点击相关的接口即可实现权限节点的查找与点击。
二、辅助功能基本配置和框架搭建
创建自定义辅助功能服务类
import android.accessibilityservice.AccessibilityService;
import android.view.accessibility.AccessibilityEvent;
import com.accessibility.utils.AccessibilityLog;
public class AccessibilitySampleService extends AccessibilityService {
@Override
protected void onServiceConnected() {
super.onServiceConnected();
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
// 此方法是在主线程中回调过来的,所以消息是阻塞执行的
// 获取包名
String pkgName = event.getPackageName().toString();
int eventType = event.getEventType();
// AccessibilityOperator封装了辅助功能的界面查找与模拟点击事件等操作
AccessibilityOperator.getInstance().updateEvent(this, event);
AccessibilityLog.printLog("eventType: " + eventType + " pkgName: " + pkgName);
switch (eventType) {
case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
break;
}
}
@Override
public void onInterrupt() {
}
}
。。。。。。。。。。。。。。。。。。
想详细了解请下载附件查看。
©版权声明:本文内容由互联网用户自发贡献,版权归原创作者所有,本站不拥有所有权,也不承担相关法律责任。如果您发现本站中有涉嫌抄袭的内容,欢迎发送邮件至: www_apollocode_net@163.com 进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
转载请注明出处: apollocode » 辅助功能样本
文件列表(部分)
名称 | 大小 | 修改日期 |
---|---|---|
build.gradle | 0.30 KB | 2018-02-07 |
proguard-rules.pro | 0.41 KB | 2018-02-07 |
AndroidManifest.xml | 0.72 KB | 2018-02-07 |
AccessibilityMainActivity.java | 0.47 KB | 2018-02-07 |
AccessibilityNormalSample.java | 0.87 KB | 2018-02-07 |
AccessibilityOpenHelperActivity.java | 1.39 KB | 2018-02-07 |
AccessibilityOperator.java | 1.39 KB | 2018-02-07 |
AccessibilitySampleService.java | 0.81 KB | 2018-02-07 |
OpenAccessibilitySettingHelper.java | 0.38 KB | 2018-02-07 |
AccessibilityLog.java | 0.25 KB | 2018-02-07 |
AccessibilityUtil.java | 0.85 KB | 2018-02-07 |
accessibility_bottom_in.xml | 0.16 KB | 2018-02-07 |
accessibility_bottom_out.xml | 0.15 KB | 2018-02-07 |
activity_accessibility_main.xml | 0.42 KB | 2018-02-07 |
activity_accessibility_normal_sample.xml | 0.43 KB | 2018-02-07 |
activity_accessibility_transparent_layout.xml | 0.16 KB | 2018-02-07 |
ic_launcher.png | 4.73 KB | 2018-02-07 |
ic_launcher.png | 7.53 KB | 2018-02-07 |
colors.xml | 0.16 KB | 2018-02-07 |
dimens.xml | 0.14 KB | 2018-02-07 |
strings.xml | 0.17 KB | 2018-02-07 |
styles.xml | 0.33 KB | 2018-02-07 |
accessibility_config.xml | 0.23 KB | 2018-02-07 |
build.gradle | 0.29 KB | 2018-02-07 |
accessibility.png | 17.03 KB | 2018-02-07 |
accessibility_op.gif | 1,186.65 KB | 2018-02-07 |
sys_accessibility_page.jpg | 17.77 KB | 2018-02-07 |
utils | 0.00 KB | 2018-02-07 |
accessibility | 0.00 KB | 2018-02-07 |
com | 0.00 KB | 2018-02-07 |
发表评论 取消回复