使用AccessibilityService Android在Chrome中自动填充登录

时间:2014-11-24 05:58:37

标签: android google-chrome accessibilityservice

我正在开发一个需要在其他已安装的应用和Chrome中自动填充登录的应用程序。我能够使用AccessibilityService成功自动填充其他已安装应用中的登录信息,但无法在Chrome浏览器上运行。我能够识别用户名和密码AccessibilityNodeInfo但我无法将内容粘贴到其中。

这就是我正在尝试的方法,我将要填充的内容复制到剪贴板中,然后使用AccessibilityNodeInfo.ACTION_PASTE将内容粘贴到这些用户名和密码字段中。此技术适用于其他已安装的应用,但无法粘贴到Chrome中。我无法在网上找到任何相关的帖子,除了这一个 - link,但是没有明确的解决方案。此外,我也无法在开发者网站上找到任何记录。我应该注入javascript代码来粘贴我的内容吗?如果是这样,请举个例子?我之前使用过WebView做过,但在这种情况下,我没有引用该视图。

对此的任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

您可以通过执行以下操作来运行javascript来完成此操作:

document.getElementById("username").val = "username";

然而,我怀疑你是否可以在Chrome应用程序中作为外部应用程序运行任意js。

答案 1 :(得分:0)

谷歌不允许

“您无法使用AccessibilityService注入JavaScript”

“没有计划支持JavaScript扩展程序或在Chrome或WebView中注入javascript的任何其他方法。”

您可以阅读更多here...

答案 2 :(得分:0)

您可以使用此方法完成自动填充:

private void setNodeText(AccessibilityNodeInfo node, String str) {
        Bundle bundle = new Bundle();
        bundle.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, str);
        node.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, bundle);
}