辅助功能服务和webview?

时间:2017-04-24 09:58:23

标签: android android-support-library accessibilityservice

可以单击(使用AccessibilityService)放置在Webview中的特定按钮吗?例如,某些应用程序A在MainActivity中有一个webview。活动开始后,Web内容将加载到webview中。加载的网页包含带有文本“聊天”的按钮。我可以使用辅助功能服务单击此按钮吗?我知道我可以点击Android原生小部件(android.widget.Button,TextView等),但我不知道如何执行点击Web视图内网页上显示的按钮。请帮忙

2 个答案:

答案 0 :(得分:1)

这是一个复杂的答案。是的,您可以单击视图,但这取决于Web开发人员如何实现按钮。如果他们做了一些愚蠢的事情,就像实施触摸式触摸式听众,而不是onClick听众,它可能会被打破。建议:使用TalkBack。如果它不能与TalkBack一起使用,则无法执行此操作。如果是这样,以下代码应该适合您:

AccessibilityNodeInfo info = ...;

info.performAction(AccessibilityNodeInfo.ACTION_CLICK);

SideNote:有传言说Android实现了从可访问性服务到伪造真实硬件事件的能力。到目前为止,我只在Android的演示中看到过这种情况,仅用于系统应用程序(具有提升的权限)。请注意完成此操作所需的API,它们实际上可能隐藏在某个地方,但我还没有看到它们被公开。

答案 1 :(得分:-3)

我想你可以做这样的事情吗?

Button button = (Button)findViewById(R.id.ButtonId);
button.onClick(.....);