android accessibility service,AccessibilityService使用入门

本文介绍了Android AccessibilityService的设计初衷,展示了如何配置和使用AccessibilityService,包括监听事件、交互操作和手势模拟。此外,还提供了检查和引导用户开启服务的方法,以及详细解释了配置XML中的重要属性。
摘要由CSDN通过智能技术生成

AccessibilityService设计初衷在于帮助残障用户使用android设备和应用,在后台运行,可以监听用户界面的一些状态转换,例如页面切换、焦点改变、通知、Toast等,并在触发AccessibilityEvents时由系统接收回调。后来被开发者另辟蹊径,用于一些插件开发,比如微信红包助手,还有一些需要监听第三方应用的插件。

最好的资料:官方文档

生命周期

AccessbilityService的生命周期由系统专门管理,并遵循Service的基本生命周期,它只能由用户自己在设置中手动启动,系统绑定到服务后,会调用它的onServiceConnected()方法。

当用户手动在设置中关闭服务,或者开发者调用disableSelf()方法时,该服务会被关闭销毁。

基本配置

继承AccessbilityService

class AliAccessibilityService : AccessibilityService() {

private val TAG = "AliAccessibilityService"

//服务中断时的回调

override fun onInterrupt() {

Log.d(TAG, "onInterrupt")

}

//接收到系统发送AccessibilityEvent时的回调

override fun onAccessibilityEvent(event: AccessibilityEvent) {

Log.d(TAG, "onAccessibilityEvent:event:$event")

}

}

AccessbilityService本质上还是一个Service,所以要在AndroidManifest中注册该服务

android:name=".AliAccessibilityService"

android:label="支付测试"

android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">

android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"是为了确保只有系统可以绑定该服务。

配置你需要监听的事件类型、要监听哪个程序,最小监听间隔等属性。这里有两种方式可以进行配置,一种是在manifest中通过meta-data配置,一种是在代码中通过setServiceInfo(AccessibilityServiceInfo)设置。

方式一:通过meta-data设置

android:name=".AliAccessibilityService"

android:label="支付测试"

android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">

android:name="android.accessibilityservice"

android:resource="@xml/accessible_service_config_ali" />

accessible_service_config_ali.xml

android:accessibilityEventTypes="typeWind

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值