首页 > 解决方案 > 在 Android 屏幕上获取文本内容——即使它不可见

问题描述

可以通过创建 Accessibility Service来获取 Android 屏幕的文本内容。此方法仅限于当前在屏幕上可见的内容。

是否也可以获得当前在屏幕上不可见的视图文本,例如用户必须滚动才能看到?

例如,我可以使用无障碍服务获取此 HN 帖子的第一条评论的文本,但如何获取第二条评论的文本?

在此处输入图像描述

标签: androidaccessibilityservice

解决方案


这似乎取决于您要从中读取文本的应用程序中使用的视图类型。

原来,如果你在 Chrome App 中打开这个网站,你就可以访问整个页面的文本内容。但是如果你在 Firefox 中打开它,你只能访问当前在屏幕上可见的内容。

使用UI Automator ViewerWebView检查某些s(在 Chrome 中使用)的视图层次结构,似乎它们的内容可以完全访问,即使它不完全可见。

另一方面,RecyclerView例如 s 中的内容仅在必要时才呈现。因此,只有在它实际可见时才能访问它。对于ListViews,情况并非总是如此。例如在dict.cc App中,ListView可以访问s的所有项目中的文本内容。

因此,如果你想读取整个窗口的文本内容,你必须庆幸文本视图没有从视图层次结构中优化。


推荐阅读