SWITCH_SCANNER_PARAMS
在 DataWedge 6.5 中引入。
用于将一个或多个条码、扫描器和/或读卡器参数作为 Intent 额外项进行传递,从而临时更新活动配置文件的设置。可随时使用此 API 来更改扫描器设置,以响应更改的条件。例如,开发人员可能想要在检测到弱光条件时启用扫描器照明。
注意:通过此 API 配置的设置会在下一次配置文件切换时废弃。
函数原型
Intent i = new Intent(); i.setAction("com.symbol.datawedge.api.ACTION"); i.putExtra("com.symbol.datawedge.api.SWITCH_SCANNER_PARAMS", "param_name", "value");
参数
ACTION [字符串]:"com.symbol.datawedge.api.ACTION"
EXTRA_DATA [字符串]:"com.symbol.datawedge.api.SWITCH_SCANNER_PARAMS"
EXTRA_DATA [捆绑包]:"<名称, 值>" - 接受扫描器参数作为名称-值对
结果代码
如果应用程序包括 Intent 额外项 RECEIVE_RESULT
和 COMMAND_IDENTIFIER
以使应用程序能够使用 DataWedge 结果 Intent 机制获取结果,则 DataWedge 返回以下错误代码。请参阅以下示例。
- DATAWEDGE_DISABLED - DataWedge 处于禁用状态
- PROFILE_DISABLED - 配置文件处于禁用状态
- PLUGIN_DISABLED - 扫描器插件处于禁用状态
- SCANNER_DISABLED - 描器处于禁用状态
- PARAMETER_INVALID - 给定扫描器参数无效
- PARAMETER_NOT_SUPPORTED - 不支持给定扫描器参数
- VALUE_INVALID - 扫描器参数的给定值无效
- VALUE_NOT_SUPPORTED - 不支持扫描器参数的给定值
有关更多信息,另请参阅结果代码指南。
返回值
将错误和调试消息记录到可通过 logcat 命令查看和过滤的 Android 日志记录系统。从 ADB Shell 使用 logcat 查看日志消息:
$ adb logcat -s DWAPI
记录无效操作、缺少参数或其他故障的错误消息。
示例代码
下面的代码传递可为活动配置文件中的活动扫描器切换扫描器参数的 Intent。要验证切换的结果(或如果预期会出现错误),请包括 Intent 额外项 RECEIVE_RESULT
和 COMMAND_IDENTIFIER
以获取结果。
// create the intent and action Intent i = new Intent(); i.setAction("com.symbol.datawedge.api.ACTION"); Bundle bScannerParams = new Bundle(); bScannerParams.putString("illumination_mode", "off"); bScannerParams.putString("decode_audio_feedback_uri", "Pollux"); i.putExtra("com.symbol.datawedge.api.SWITCH_SCANNER_PARAMS", bScannerParams); // generate result codes i.putExtra(“RECEIVE_RESULT”,"true"); i.putExtra("COMMAND_IDENTIFIER", "123456789"); //returned as it is with the result // send the intent this.sendBroadcast(i); // register the broadcast receiver (for result codes) :::javascript String command = intent.getStringExtra("COMMAND"); String commandidentifier = intent.getStringExtra("COMMAND_IDENTIFIER"); String result = intent.getStringExtra("RESULT"); Bundle bundle = new Bundle(); String resultInfo = ""; if (intent.hasExtra("RESULT_INFO")) { bundle = intent.getBundleExtra("RESULT_INFO"); Set<String> keys = bundle.keySet(); for (String key : keys) { if(key.equalsIgnoreCase("RESULT_CODE")){ resultInfo += key + ": " + Arrays.toString(bundle.getStringArray(key)); }else { resultInfo += key + ": " + bundle.getString(key) + "\n"; } } }
备注
前提条件和假设:
- 必须启用 DataWedge 及相应的配置文件
- 在活动配置文件中应启用条码扫描
- 如果 Intent 包含无效或不受支持的扫描器参数或值,将会发送结果代码
另请参阅:
Zebra 支持中心 | 集成商指南、产品手册、软件下载和支持
LaunchPad | Zebra 开发人员社区
Intent | Android 开发人员
Intent 和 Intent 过滤器 | Android 开发人员
Android Intent | 教程