辅助功能样本

本文主要介绍辅助功能的使用: 辅助功能基本原理 辅助功能基本配置和框架搭建 辅助功能实战解析

应用介绍

本文主要介绍辅助功能的使用

  1. 辅助功能基本原理
  2. 辅助功能基本配置和框架搭建
  3. 辅助功能实战解析

一、辅助功能基本原理

  辅助功能(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() {

    }
}

。。。。。。。。。。。。。。。。。。

想详细了解请下载附件查看。

文件列表(部分)

名称 大小 修改日期
build.gradle0.30 KB2018-02-07
proguard-rules.pro0.41 KB2018-02-07
AndroidManifest.xml0.72 KB2018-02-07
AccessibilityMainActivity.java0.47 KB2018-02-07
AccessibilityNormalSample.java0.87 KB2018-02-07
AccessibilityOpenHelperActivity.java1.39 KB2018-02-07
AccessibilityOperator.java1.39 KB2018-02-07
AccessibilitySampleService.java0.81 KB2018-02-07
OpenAccessibilitySettingHelper.java0.38 KB2018-02-07
AccessibilityLog.java0.25 KB2018-02-07
AccessibilityUtil.java0.85 KB2018-02-07
accessibility_bottom_in.xml0.16 KB2018-02-07
accessibility_bottom_out.xml0.15 KB2018-02-07
activity_accessibility_main.xml0.42 KB2018-02-07
activity_accessibility_normal_sample.xml0.43 KB2018-02-07
activity_accessibility_transparent_layout.xml0.16 KB2018-02-07
ic_launcher.png4.73 KB2018-02-07
ic_launcher.png7.53 KB2018-02-07
colors.xml0.16 KB2018-02-07
dimens.xml0.14 KB2018-02-07
strings.xml0.17 KB2018-02-07
styles.xml0.33 KB2018-02-07
accessibility_config.xml0.23 KB2018-02-07
build.gradle0.29 KB2018-02-07
accessibility.png17.03 KB2018-02-07
accessibility_op.gif1,186.65 KB2018-02-07
sys_accessibility_page.jpg17.77 KB2018-02-07
utils0.00 KB2018-02-07
accessibility0.00 KB2018-02-07
com0.00 KB2018-02-07

立即下载

相关下载

[辅助功能样本] 本文主要介绍辅助功能的使用: 辅助功能基本原理 辅助功能基本配置和框架搭建 辅助功能实战解析

评论列表 共有 0 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部