首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用辅助功能服务在屏幕上查找按钮或文本的坐标。

使用辅助功能服务在屏幕上查找按钮或文本的坐标。
EN

Stack Overflow用户
提问于 2022-06-03 20:47:52
回答 1查看 181关注 0票数 1

是否可以使用辅助功能服务在屏幕上找到按钮或文本的坐标,然后模拟在该按钮或文本字段上的点击,但不需要触摸该字段,就像您需要触摸Android TalkBack中的字段才能听到读取?

例如,是否可以像这样使用辅助功能服务:

  1. 将活动的意图发送到可访问性服务,并为不同的任务提供额外的服务。
  2. 当收到带有特定额外字符串的意图时,服务将打开开发人员选项。
  3. 在不接触文本“运行服务”的情况下,可访问性服务应该找到开发人员选项中的文本字段(或按钮)坐标,并模拟对其的点击。

这在Android上有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-22 22:13:46

我想我写了一个你可能会觉得有趣的服务

请记住以下几点:

  1. 您需要启用该服务并让它运行。
  2. 谷歌禁止在游戏商店发布可访问性服务,如果它们是不是为了帮助残疾人的话
  3. 可访问性服务只能“查看”当前屏幕上的内容--这是RecyclerView的一个问题,因为在用户滚动时,ViewHolder被用于不同的元素。

但是,您可以在可访问性服务中这样做:

代码语言:javascript
运行
复制
    // To find a node by *fully qualified id*
    rootInActiveWindow.findAccessibilityNodeInfosByViewId("id criteria")

    // To find a node by text criteria
    rootInActiveWindow.findAccessibilityNodeInfosByText("text criteria")

id准则搜索时

通过完全限定视图id的资源名查找AccessibilityNodeInfos,其中一个完全限定的id来自from "package:id/id_ resource _ name“。例如,如果目标应用程序的包是"foo.bar“,而id资源名称是"baz",则完全限定的资源id是"foo.bar: id /baz".Note:这个API的主要用途是用于UI测试自动化,并且为了报告完全限定的视图id,如果客户端在配置AccessibilityService时必须设置AccessibilityServiceInfo#FLAG_REPORT_VIEW_IDS标志,则报告完全限定的视图id。

文本标准搜索时

通过文本查找AccessibilityNodeInfos。匹配是不区分大小写的容器。搜索相对于此信息,即此信息是遍历树的根。

两人的说明:

注意:如果这个视图层次结构有一个通过SurfaceView嵌入另一个视图层次结构的SurfaceView#setChildSurfacePackage,那么这个API将无法在嵌入的视图层次结构上找到视图的节点。这是因为视图不知道嵌入的层次结构。相反,您可以遍历所有的子节点以找到节点。

单击元素:

代码语言:javascript
运行
复制
    fun click(long: Boolean = false) {
        someAccessibilityNodeInfoObject.performAction(
            if (long) ACTION_LONG_CLICK 
            else ACTION_CLICK
        )
    }

如果您真的热衷于获取节点的屏幕坐标,那么始终可以使用getBoundsInScreen方法,但是您必须做所有的数学和其他工作,这比需要做的要困难得多。但我在巴什做的在执行adb uiautomator dump和解析adb uiautomator dump时,去掉了我想要的节点的边界,只是要小心使用uiautomator dump会禁用可访问性服务。

代码语言:javascript
运行
复制
MIDX= START_X + ((END_X - START_X) / 2)
MIDY= START_Y + ((END_Y - START_Y) / 2)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72495019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档