Closed BelongsH closed 3 years ago
可以贴下动作代码吗,部分也可
fun startTask2(loop: (str: String) -> Unit): Job {
return launchWithExpHandler {
runTask = true
while (runTask) {
val listView = withType("ListView").findFirst()
}
}
}
获取到这个ListView
在华为手机(Android 10)是上一帧的, 但是在小米手机(Android 7)上,就是当前帧。
@BelongsH 尝试下面方法, 或者 在while里 delay(200) 一下试试
fun startTask2(loop: (str: String) -> Unit): Job {
return launchWithExpHandler {
val listView = withType("ListView").await(15000)
}
}
我已经确定了问题了,
在断点之后发现onAccessibilityEvent
没有被调用,而且仅仅在android 10
上面才出现。
查看demo
的配置文件后发现
android:accessibilityEventTypes="typeWindowStateChanged"
这个配置在android 7
上面是有效的。
我尝试的将配置改成
android:accessibilityEventTypes="typeAllMask"
这样就可以适配android 10
了
Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP 以上的系统手机,
界面变化后,
findFirst
还是获取到上一帧的界面数据。只有分屏的时候,界面才进行刷新。 (通过划出任务栏,无障碍才能获取到当前界面的数据)
同样的代码,在Android10(华为) 上面获取到的是上一帧的数据,在Android7(小米)上是正常的。