kotlin 无障碍服务_GitHub - Vove7/Android-Accessibility-Api: 安卓无障碍服务Api, 为了简化无障碍服务使用,并使用 Kotlin 以提供简洁的Api。...

Android-Accessibility-Api

安卓无障碍服务Api, 为了简化无障碍服务使用,并使用 Kotlin 以提供简洁的Api。

[TOC]

基础导航

(图片加载过慢可到 Gitee 查看)

查看代码

//无障碍服务声明 未开启会跳转设置页面提示开启服务,并抛出异常 终止执行

requireBaseAccessibility()

toast("下拉通知栏..")

delay(1000)

toast("快捷设置..")

//操作之间需要适当延时等待

delay(1000)

//下拉通知栏快捷设置

quickSettings()

delay(1000)

//返回操作

back()

delay(500)

//返回操作

back()

delay(1000)

//电源菜单

powerDialog()

delay(500)

back()

delay(1000)

//进入最近任务页面

recents()

delay(1000)

back()

delay(1000)

//Home 按键 / 返回桌面

home()

delay(100)

更多操作:

方法

说明

lockScreen()

锁屏,需要Android P

screenShot()

触发系统截屏,需要Android P

splitScreen()

触发系统分屏,需要Android P

视图检索

提取文字

requireBaseAccessibility()

//使用 ScreenTextFinder() 来搜索屏幕上的文字

val ts = ScreenTextFinder().find().joinToString("\n\n")

withContext(Dispatchers.Main) {

AlertDialog.Builder(act).apply {

setTitle("提取文字:")

setMessage(ts)

show()

}

}

视图搜索

提供一个基础类 ViewFinder, 并封装一个 ViewFinderWithMultiCondition 来指定搜索条件,实现快速搜索;查看所有方法:view_finder_api.kt

ViewFinder 主要方法:

方法

说明

findFirst(includeInvisible: Boolean = false): ViewNode?

立即搜索,返回满足条件的第一个结果

includeInvisible: 是否包含不可见元素

findAll(includeInvisible: Boolean = false): Array

立即搜索,返回满足条件的所有结果

waitFor(waitMillis: Long = 30000): ViewNode?

等待搜索,在指定时间内循环搜索(视图更新),超时返回null

require(waitMillis: Long = WAIT_MILLIS): ViewNode

等待超时抛出异常

示例1: 等待 Chrome 打开 > 展开菜单

//等待无障碍开启 默认时间30s,超时将抛出异常

waitBaseAccessibility()

toast("start chrome after 1s")

delay(1000)

//打开Chrome

val targetApp = "com.android.chrome"

act.startActivity(act.packageManager.getLaunchIntentForPackage(targetApp))

//等待页面

if (

waitForApp(targetApp, 5000).also {

toast("wait " + if (it) "success" else "failed")

}

) {

//id 搜索,点击打开菜单

withI

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值