Android 辅助功能服务和网络视图?

Android 辅助功能服务和网络视图?,android,android-support-library,accessibilityservice,Android,Android Support Library,Accessibilityservice,是否可以单击(使用AccessibilityService)放置在Webview中的特定按钮?例如,某些应用程序A在MainActivity中有一个webview。活动启动后,web内容将加载到webview中。加载的网页包含文本为“Chat”的按钮。我可以使用辅助功能服务单击此按钮吗?我知道我可以点击Android原生小部件(Android.widget.Button、TextView等),但我不知道如何点击web视图内网页上显示的按钮。请帮帮我,我想你可以这样做吗 Button button

是否可以单击(使用AccessibilityService)放置在Webview中的特定按钮?例如,某些应用程序A在MainActivity中有一个webview。活动启动后,web内容将加载到webview中。加载的网页包含文本为“Chat”的按钮。我可以使用辅助功能服务单击此按钮吗?我知道我可以点击Android原生小部件(Android.widget.Button、TextView等),但我不知道如何点击web视图内网页上显示的按钮。请帮帮我,我想你可以这样做吗

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

这是一个复杂的答案。是的,您可以单击视图,但是,这取决于web开发人员如何实现该按钮。如果他们做了一些愚蠢的事情,比如实现了触碰触碰监听,而不是onClick监听,那么它很可能会被破坏。建议:使用对讲机。如果对讲不起作用,你就做不到。如果是,则以下代码应适用于您:

AccessibilityNodeInfo info = ...;

info.performAction(AccessibilityNodeInfo.ACTION_CLICK);

旁注:有传言说Android实现了这一功能,从可访问性服务到假硬件事件。到目前为止,我只在安卓系统的演示中看到了这一点,并且仅在系统应用程序中使用(具有提升的权限)。请留意您需要完善的API,它们实际上可能隐藏在某个地方,但我还没有看到它们被公开。

你可以通过覆盖点击该按钮后得到的URL来实现这一点,并且在该方法中,你可以做任何你想做的事情,当我点击任何图标时,我的应用程序包含一个光标,该光标将使用它自己的服务运行,如果我退出了我的应用程序,正在运行与webview共存的其他应用程序,则性能无法正常工作。@AkashDubey我认为Rohit希望在用户不触摸屏幕的情况下单击。也可以从后端服务。他如何在不触摸屏幕的情况下,使用屏幕坐标将焦点集中在链接上?我的应用程序包含一个光标,当我单击它执行的任何图标时,该光标将与它自己的服务一起运行。如果我不在我的应用程序中,并且正在操作与webview共存的其他应用程序,则性能将不起作用。在AccessibilityService中!此代码工作的可能性为零。可访问性服务无权访问应用程序视图,只能访问基于可访问性的视图表示。在对讲中,如果我们启用“单点点击”,则单点点击对网页不起作用(在链接被前一次点击聚焦后)。这表明performAction(单击)不适用于网页。链接适用于双击,但我想双击是内部处理的,我们没有访问权限。单点击是实验性的,我不会用它作为任何指标。是的,但单点击它会执行(单击),它适用于除网页和键盘以外的所有其他视图。它至少显示了性能(点击)在网页上不起作用?是的,这可能是一个合理的测试,但“性能(点击)”在网络上不起作用的笼统说法是错误的,我只是在手机上通过Google.com上的TalkBack这样做的。开始搜索。正如我在回答中所说,这取决于网站如何实现其事件处理程序。不幸的是,在当前的可访问性API中,无法可靠地触发web开发人员可以用来处理AccessibilityServiceRight中的单击的所有潜在事件。这一限制是否有文件记载?我想说服我的客户。此外,我们不能以编程方式模拟对讲的双击(用户不需要触摸屏幕),对吗?这有文件记录吗?