如何在MC67上配置DataWedge,实现无输入框时扫码跳转下一界面
解决Motorola MC67 DataWedge无输入框时扫码跳转界面的问题
嘿,我刚好有过配置MC67 DataWedge的实战经验,你的需求完全可以实现!核心思路是让DataWedge在扫码后触发一个自定义Intent,然后让你的WMS软件监听这个Intent来完成界面跳转。下面是一步步的具体操作:
第一步:调整DataWedge配置的输出规则
- 打开MC67上的DataWedge应用,找到你当前给WMS用的那个配置文件
- 切换到**"Output"选项卡,选择"Intent Output"**
- 启用Intent输出功能,然后设置这些关键参数:
- Intent action:自定义一个唯一标识,比如
com.yourcompany.wms.SCAN_TRIGGER(自己取个好记的,要和后续WMS代码对应上) - Intent category:直接选
DEFAULT就可以 - Delivery方式:推荐选**"Send via Broadcast"**,兼容性更强,也方便WMS监听
- Intent action:自定义一个唯一标识,比如
第二步:确保无输入框时触发Intent
- 回到配置的**"Profile Settings"**,确认你的WMS应用已经被关联到这个配置里
- 再回到**"Output"选项卡,找到"Keystroke Output",把"Send when no input field is focused"**关掉(避免和Intent输出冲突)
- 确认Intent Output的触发条件设置为**"Always send"**——这样不管有没有输入框,扫码后都会触发Intent
第三步:在WMS软件里监听这个Intent
如果你的WMS是自研的Android应用,需要添加一个Broadcast Receiver来监听我们刚才定义的Intent。举个简单的代码示例:// 定义扫码广播接收器 private BroadcastReceiver scanReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if ("com.yourcompany.wms.SCAN_TRIGGER".equals(intent.getAction())) { // 获取扫码数据 String scanResult = intent.getStringExtra("com.symbol.datawedge.data_string"); // 这里写跳转下一个界面的逻辑 Intent nextScreenIntent = new Intent(context, NextOperationActivity.class); nextScreenIntent.putExtra("SCAN_DATA", scanResult); context.startActivity(nextScreenIntent); } } }; // 在Activity的onCreate里注册接收器 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ...其他初始化代码 IntentFilter filter = new IntentFilter("com.yourcompany.wms.SCAN_TRIGGER"); registerReceiver(scanReceiver, filter); } // 在onDestroy里注销接收器,避免内存泄漏 @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(scanReceiver); }如果你的WMS是现成的商用软件,看看它的设置里有没有支持接收DataWedge Intent的选项,或者联系开发商帮忙适配这个功能。
第四步:测试验证
- 保存DataWedge的配置,重启一下WMS软件
- 回到没有输入框的界面扫码,应该就能自动触发界面跳转了
要是你的DataWedge版本比较旧,界面布局可能有点不一样,但核心的Intent输出、应用关联这些选项肯定都存在,耐心找一下就能找到。
内容的提问来源于stack exchange,提问作者jsprayberry
相关产品推荐
相关产品推荐

