【发布时间】:2020-10-08 06:51:59
【问题描述】:
可以通过创建无障碍服务get the text content of an Android screen。此方法仅限于当前在屏幕上可见的内容。
是否也可以获取屏幕上当前不可见的视图文本,例如,用户必须滚动才能看到?
例如,我可以使用无障碍服务获取此 HN 帖子的第一条评论的文本,但如何获取第二条评论的文本?
【问题讨论】:
标签: android accessibilityservice
可以通过创建无障碍服务get the text content of an Android screen。此方法仅限于当前在屏幕上可见的内容。
是否也可以获取屏幕上当前不可见的视图文本,例如,用户必须滚动才能看到?
例如,我可以使用无障碍服务获取此 HN 帖子的第一条评论的文本,但如何获取第二条评论的文本?
【问题讨论】:
标签: android accessibilityservice
这似乎取决于您要从中读取文本的应用程序中使用的视图类型。
原来如果你在 Chrome App 中打开这个网站,你可以访问整个页面的文本内容。但是如果你在 Firefox 中打开它,你只能访问当前在屏幕上可见的内容。
用UI Automator Viewer检查一些WebViews(在Chrome中使用)的视图层次结构,似乎可以完全访问它们的内容,即使它不完全可见。
另一方面,RecyclerViews 中的内容仅在必要时才会呈现。因此,只有在它实际可见时才能访问它。对于ListViews,情况并非总是如此。例如在dict.cc App中,可以访问ListViews的所有项目中的文本内容。
因此,如果你想读取整个窗口的文本内容,你必须庆幸文本视图没有从视图层次结构中优化。
【讨论】: