如何在Android上使用AccessibilityService获取屏幕上的View对象?

2020年1月7日 36点热度 0条评论

我正在尝试创建一个提供可访问性服务的Android应用程序,该应用程序在被激活时会捕获整个屏幕内容以及其中的视图。
我在Android文档中看了很多东西,并且了解到我可以获得具有很多有关屏幕内容信息的AccessibilityNodeInfo。
问题是我想拥有自己的视图。
AccessibilityNodeInfo提供了className,packageName,childs,parents和许多布尔值,它们是否可聚焦,可检查,甚至还提供View的文本。我说,如果我能阅读View的文本,为什么不知道它的宽度,高度,位置,字体等?

解决方案如下:

问题是我想拥有自己的视图

不可能,抱歉。

如果我可以阅读视图的文本,为什么不知道它的宽度,高度,位置,字体等?

因为这些东西对于可访问性的价值有限,大概是。如果您可以提供详细说明,了解这些知识将如何帮助您改善身体有挑战的人们的生活,请file a feature request

即使这样,最有可能的情况是Google会将这种细节添加到现有的辅助功能对象中。