3

使用安卓 4.2.2

我正在尝试编写一个 AccessibilityService,并拥有大部分必需的功能。我正在绘制覆盖图并允许用户通过蓝牙开关选择/单击突出显示的项目(目的是希望仅使用一个开关与 android 设备交互的禁用客户端)。

在解析屏幕时,我可以获得根 accessibiltyNodeInfo 对象及其所有子对象。我可以在屏幕上突出显示所有这些元素,然后通过 .performAction() 方法单击所需的元素。

在主屏幕上,有 3 个“窗格”可用,显示中间的一个。向左或向右滑动以查看其他(标准启动器行为)。有一个节点报告isScrollable = true,但是Action Flags 不报告ACTION_SCROLL_FORWARD 或ACTION_SCROLL_BACKWARDS。如果我不能调用 .performAction() 因为它不支持滚动,我该如何滚动这样的节点?如果它不能以某种方式滚动,为什么它会报告 isScrollable = true ?

任何帮助表示赞赏 - 谢谢。

4

1 回答 1

1

您无法滚动无法执行 ACTION_SCROLL_FORWARD 或 ACTION_SCROLL_BACKWARDS 的节点。

Android 上的可访问性框架充其量只是实验性的,并且受到诸如您提到的不一致的困扰。一般来说,最好不要依赖任何is[Property]()方法。相反,您应该在调用之后getActions()getActionsList()在节点上测试您自己感兴趣的属性。

于 2015-03-19T17:46:12.673 回答