辅助功能服务 - 将值插入文本字段
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 设备监视器进行探索...非常棒的工具!
我想将条码扫描器值(从连接到移动设备的条码扫描器设备读取条码)插入网页文本框字段,该页面在移动 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 设备监视器进行探索...非常棒的工具!