前言

无障碍服务accessibilityservice是什么

简单来说 无障碍服务就是一个为残障人士 尤其是视觉障碍人士提供的一个帮助服务。具体就是可以识别控件 文字 可以配合语音助手 操作和 使用手机。

但是在实际的生产生活中我们可以利用无障碍的这些特性做到一些自动化的事件。诸如

1.自动化抢 微信 QQ红包

2.自动化点赞服务

3.自动化管理 安装和卸载

4.配合其他服务做成群控软件

无障碍服务与ADB和appium的区别

理论上这三者都可以做到自动化处理,但是无障碍要比后面两者更有效 且更方便部署和携带。

1.无障碍服务不需要root 框架配合

2.无障碍手机自带 无需额外安装

3.无需电脑手机链接配合,可以完全的脱机使用 成本极低

4.无障碍设计的无侵入式 对于操控软件是不可知的,可以避免被风控

5.无障碍服务开发非常简单 学习成本极低 无需像appium那些测试框架一样需要特意的学习使用。

利用无障碍服务能干啥

简单来说就是一切的自动化操作,你手可以点击的操作他都可以。包括但不仅限于

1.点击 单击 双击

2.拖动 滑动 下拉 上滑

3.多点触控 三指上滑

4.打开某个菜单 下拉状态栏 关闭开启wifi 切换代理

5. 。。。。 更多更多 不需要额外例举了。

你可以利用无障碍服务获得丰厚收益

这个问题怎么说,正常的开发并不需要你掌握太多的相关知识。但是如果你想利用脚本获得收益可以详细一下利用无障碍服务可以做一些有益的事情。我例举几个可以让你获得收益的点吧。

看了这么多,块和我一起进入无障碍服务的世界吧,不需要动手 钱就到手里了。

如何开启和使用无障碍服务

把大象装进冰箱分几步?

拢共分三步。

同理开启无障碍服务也是拢共分三步。

第一步 继承AccessibilityService

public class MyAccessibilityService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
} @Override
public void onInterrupt() {
} @Override
public void onCreate() {
super.onCreate();
}
}

特别说明 AccessibilityService 本质上也是一个service 也有生命周期。所以继承之后就可以为所欲为了。几个方法的复写自己看着操作就行,其实没啥东西这里不讲。onAccessibilityEvent 这个方法呢 也就是所有的界面事件都会去那里,你可以做一些拦截 修改什么的。

第二步:注册组件

既然无障碍服务是服务 也属于四大组件,当然也需要注册

这个没什么好说的:

    <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />

<service
android:name=".MyAccessibilityService"
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>

尤其的accessibility.xml这个描述配置文件

<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:accessibilityEventTypes="typeAllMask"
android:accessibilityFeedbackType="feedbackGeneric"
android:canPerformGestures="true"
android:canRetrieveWindowContent="true"
android:accessibilityFlags="flagDefault|flagRetrieveInteractiveWindows|flagIncludeNotImportantViews"
android:canRequestFilterKeyEvents="true"
android:description="@string/accessibility_desc"
android:notificationTimeout="100" />

这些字段都是有意义的

accessibilityEventTypes

accessibilityFeedbackType

canPerformGestures

canRetrieveWindowContent

accessibilityFlags

canRequestFilterKeyEvents

notificationTimeout

具体的我就不说了 我只说notificationTimeout 这个特意的设置下,就是接受事件的间隔。canPerformGestures 这个务必为true

其他字段解释看官方的文档:

https://developer.android.com/reference/android/accessibilityservice/AccessibilityService#summary

第三步 装上手机 给无障碍权限

这一步不同的手机长得不一样 以魅族为例

设置->辅助功能->无障碍->找到脚本名->开启即可

这样无障碍就算是引入到我们的工程里去了。

总结

本章节首先将无障碍服务导入到项目里,后面的文章介绍如何使用无障碍来操作界面。

最新详解android自动化无障碍服务accessibilityservice以及高版本问题_1_如何开启获得无障碍的更多相关文章

  1. Android Binder IPC详解-Android学习之旅(96)

    linux内存空间与BInder Driver Android进程和linux进程一样,他们只运行在进程固有的虚拟空间中.一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间 ,用户空间是 ...

  2. 详解Android中的四大组件之一:Activity详解

    activity的生命周期 activity的四种状态 running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态. paused:暂停,处于失去焦点的时候,处于pa ...

  3. 图文详解 Android Binder跨进程通信机制 原理

    图文详解 Android Binder跨进程通信机制 原理 目录 目录 1. Binder到底是什么? 中文即 粘合剂,意思为粘合了两个不同的进程 网上有很多对Binder的定义,但都说不清楚:Bin ...

  4. 详解Android首选项框架ListPreference

    详解Android首选项框架ListPreference 原文地址 探索首选项框架 在深入探讨Android的首选项框架之前,首先构想一个需要使用首选项的场景,然后分析如何实现这一场景.假设你正在编写 ...

  5. 详解android:scaleType属性

    详解android:scaleType属性 转自:http://blog.csdn.net/encienqi/article/details/7913262    http://juliaailse. ...

  6. adb shell 命令详解,android

    http://www.miui.com/article-275-1.html http://noobjava.iteye.com/blog/1914348 adb shell 命令详解,android ...

  7. 详解Android Activity---启动模式

    相关的基本概念: 1.任务栈(Task)   若干个Activity的集合的栈表示一个Task.   栈不仅仅只包含自身程序的Activity,它也可以跨应用包含其他应用的Activity,这样有利于 ...

  8. adb shell 命令详解,android, adb logcat

    http://www.miui.com/article-275-1.html http://noobjava.iteye.com/blog/1914348 adb shell 命令详解,android ...

  9. 详解 Android 通信

    详解 Android 通信 :http://www.androidchina.net/5028.html

随机推荐

  1. 【Django admin 中文配置】

    打开settings.py文件,找到语言编码.时区的设置项,将内容改为如下: [其中 zh-Hans是简体中文 zh-Hant是繁体中文] LANGUAGE_CODE = 'zh-Hans' # LA ...

  2. SpringBoot瘦身部署(15.9 MB - 92.3 KB)

    1. 简介   SpringBoot项目部署虽然简单,但是经常因为修改了少量代码而需要重新打包上传服务器重新部署,而公网服务器的网速受限,可能整个项目的代码文件仅仅只有1-2MB甚至更少,但是需要上传 ...

  3. svn工具包+安装教程+使用ip访问

    SVN使用 简介: SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.  Server界面 1: 安装这两个文 ...

  4. css 11-CSS3属性详解(一)

    11-CSS3属性详解(一) #前言 我们在上一篇文章中学习了CSS3的选择器,本文来学一下CSS3的一些属性. 本文主要内容: 文本 盒模型中的 box-sizing 属性 处理兼容性问题:私有前缀 ...

  5. 刚入坑之C#《方法》解说

    说好的用一周时间学方法,我都快耽误成两周了.原因就是跟着传智播客的课程做了个飞行棋项目,想要梳理其中的方法却把自己绕晕了.那接下来我先说一下我学到方法的内容,在最后献上飞行器项目的代码,当然是传智播客 ...

  6. mini-web框架-装饰器-总结1(5.3.1)

    @ 目录 1.说明 2.代码 关于作者 1.说明 原则:开放封闭 可以扩展,但是不可以修改.也就是说软件对扩展开放,对修改关闭. 运用技术:闭包 一共两种方法,一个使用闭包,一个使用类 使用多个装饰器 ...

  7. Erlang那些事儿第1回之我是变量,一次赋值永不改变

    第1回先从不变的变量说开来,学过其他编程语言的人都知道,变量之所以叫变量,是因为它会经常变,被修改.假设原本X  = 10,后来再执行X = 24,那么X就从10变成了24,这对于程序新手和老鸟来说, ...

  8. [每日一题]ES6中为什么要使用Symbol?

    关注「松宝写代码」,精选好文,每日面试题 加入我们一起学习,day day up 作者:saucxs | songEagle 来源:原创 一.前言 2020.12.23日刚立的flag,每日一题,题目 ...

  9. 使用Arduino点亮ESP-01S,ESP8266-01S上的板载LED

    因为在开发ESP-01s远程控制中觉得接线麻烦,又因为ESP-01s板子上带有LED灯,那就先点亮板载LED,  如图所示: 打开Arduino 把代码copy进去,再编译烧录,就可以看见LED灯每隔 ...

  10. Plugin 插件体系

    Solon 的插件也可以叫扩展组件,相当于Spring 的 starter.Solon已经提供了大量的基础插件,但对第三方的框架适配目前较少. 插件 说明 boot插件:: 说明 org.noear: ...