Android无障碍服务AccessibilityService开发框架-Assists
Assists
Android无障碍服务(AccessibilityService)开发框架,快速开发复杂自动化任务、远程协助、监听等
Android无障碍服务能做什么
利用Android无障碍服务可以开发一些Android系统内的自动化任务,比如经典的微信自动抢红包、支付宝蚂蚁森林自动浇水、芭芭农场自动施肥等
还可以开发远程协助功能,市面上向日葵等一些远程协助功能就是利用无障碍服务和投屏权限开发的
还能开发一些拓客、引流、营销系统,抖音自动点赞评论、微博自动转发评论关注等
总之,利用Android的无障碍服务可以开发各种自动化的任务或者界面信息监听、远程协助等
Assists开发框架能做什么
按照Google官方文档继承实现的无障碍服务,对于复杂的自动化任务,不仅代码逻辑实现不清晰,后期的修改维护也会很头疼,所以在实践过程中实现了这个框架
在这个框架下开发Android无障碍服务业务可以让你的业务开发更加快速、逻辑更加健壮且容易维护。
快速开始
添加依赖
- 将JitPack仓库添加到根目录build.gradle文件中
allprojects {
repositories {
//添加JitPack仓库
maven { url 'https://jitpack.io' }
}
}
- 添加依赖到主模块的build.gradle中,
dependencies {
//添加依赖
implementation 'com.github.ven-coder:assists:1.0.1'
}
主模块AndroidManifest.xml中注册服务
一定要在主模块中注册服务,不然进程被杀服务也会自动被关闭需要再次开启
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.ven.assists.simple">
<application
android:name="com.ven.assists.simple.App"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
<!-- 添加以下代码 -->
<service
android:name="com.ven.assist.AssistsService"
android:enabled="true"
android:exported="true"
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/assists_service" />
</service>
</application>
</manifest>
实现业务逻辑
- 继承
StepImpl
实现onImpl(collector: StepCollector)
接口,通过collector.next()
实现步骤逻辑
class OpenWechat:StepImpl {
override fun onImpl(collector: StepCollector) {
collector.next(1) {
//步骤1逻辑
//打开微信
Intent().apply {
addCategory(Intent.CATEGORY_LAUNCHER)
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
component = ComponentName("com.tencent.mm", "com.tencent.mm.ui.LauncherUI")
Assists.service?.startActivity(this)
}
//步骤1执行完,紧接执行步骤2
StepManager.execute(this::class.java, 2)
}.next(2) {
//步骤2逻辑
//查找通讯录按钮
UIOperate.findByText("通讯录").forEach {
//获取到按钮后执行其他逻辑
}
}
}
}
- 在执行前注册上面步骤实现类
OpenWechat
StepManager.register(OpenWechat::class.java)
- 开始执行(执行前请确保无障碍服务已开启,开始执行请使用
beginExecute()
,后续的步骤执行请使用execute()
方法)
//从步骤1开始执行
StepManager.beginExecute(OpenWechat::class.java, 1)
具体使用可以看我的Demo
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgahgbk
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13