Android 中 利用 AccessibilityService 辅助服务 模拟点击事件

在无法修改页面源码的Android场景下,可通过Adb或辅助功能实现模拟点击。Adb方式受限于外部设备和开发者模式,而辅助功能允许在单一设备上完成。通过Android的AccessibilityService,可以编写代码进行基于坐标的点击操作,具体实现可参考GitHub上的Coobox库。
摘要由CSDN通过智能技术生成

在 Android 中想要执行一些模拟点击操作,在无法修改页面源码的情况下,通常只能使用 adb 和借助辅助功能两种方式。

Adb 方式

借助 adb shell 的命令,我们可以使用下面的方式模拟一个执行点击坐标的操作。

adb shell input tap x y

但是 adb 操作有一些门槛

  • 需要一台电脑执行adb 命令(终端执行)

  • 需要一个数据线

  • 目标设备(手机)需要开启开发者模式

所有 adb 操作的问题就是无法借助一台设备独立完成。所以可以借助辅助服务来实现单一设备独立完成。

辅助功能

Android中的辅助功能是一个极具黑科技的技术。借助下面的代码,我们可以实现 对于 基于坐标的点击。

@RequiresApi(Build.VERSION_CODES.N)


fun AccessibilityService.dispatchClick(rect: Rect?) {
   rect ?: return
   val x = rect.middleVertically()
   val y = rect.middleHorizontally()
   dispatchClick(x, y)
}


@RequiresApi(Build.VERSION_CODES.N)
fun AccessibilityService.dispatchClick(x: Float,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值