android - 在 Android 屏幕上获取文本内容——即使它不可见
问题描述
可以通过创建 Accessibility Service来获取 Android 屏幕的文本内容。此方法仅限于当前在屏幕上可见的内容。
是否也可以获得当前在屏幕上不可见的视图文本,例如用户必须滚动才能看到?
例如,我可以使用无障碍服务获取此 HN 帖子的第一条评论的文本,但如何获取第二条评论的文本?
解决方案
这似乎取决于您要从中读取文本的应用程序中使用的视图类型。
原来,如果你在 Chrome App 中打开这个网站,你就可以访问整个页面的文本内容。但是如果你在 Firefox 中打开它,你只能访问当前在屏幕上可见的内容。
使用UI Automator ViewerWebView
检查某些s(在 Chrome 中使用)的视图层次结构,似乎它们的内容可以完全访问,即使它不完全可见。
另一方面,RecyclerView
例如 s 中的内容仅在必要时才呈现。因此,只有在它实际可见时才能访问它。对于ListView
s,情况并非总是如此。例如在dict.cc App中,ListView
可以访问s的所有项目中的文本内容。
因此,如果你想读取整个窗口的文本内容,你必须庆幸文本视图没有从视图层次结构中优化。
推荐阅读
- web-services - 如何制作轻量级的web api?
- python - 读取 yahoofinancials JSON 时出错:解码“NaN”时发现意外字符
- python - Python - 如何将 OpenMenu 选项分配为列表?
- javascript - 基于设置格式的两个日期之间的差异
- c++ - 使用 {fmt} 引用字符串
- node.js - 请求 client.guilds 给出未定义
- c# - 1 控件,两个独立的绑定源
- fortran - 我在哪里(网站)可以找到“libcaf_mpi.a”?
- python - Flask 变量未显示在 HTML 页面上
- xml - 如何在 Lazarus/Free Pascal 的 DBGrid 中加载 XML/CSV/ODB 文件?