辅助功能服务 - 将值插入文本字段

Accessibility Service - Insert Values to Text Field

我想将条码扫描器值(从连接到移动设备的条码扫描器设备读取条码)插入网页文本框字段,该页面在移动 chrome 浏览器中为 运行。

来自 ACTION_SET_TEXT 上的 Android 文档。

Bundle arguments = new Bundle();
arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,"android");
info.performAction(AccessibilityAction.ACTION_SET_TEXT.getId(), arguments);

请注意,您的 info 对象必须是响应此事件的 AccessibilityNodeInfo。在 Web 中,这意味着控件必须由 Chrome 呈现给辅助技术作为 android.widget.EditText 或其兼容性库表亲之一,或两者的子类。

例如,上述解决方案会将文本输入到 FaceBook.com 上的登录字段(呈现给 AT 的是 android.widget.EditText),而不是 Google.com 上的搜索字段,呈现为 android.widget.Spinner.

如果浏览器使用非标准标记,并执行一些不稳定的自定义文本输入操作,则此解决方案将不起作用,您基本上是 SOL。

您可以自己找到所有这些,并使用 Android 设备监视器进行探索...非常棒的工具!