Zebra WS50设备扫描事件IntentFilter配置问题求助
解决Zebra WS50设备DataWedge广播接收问题
核心原因
你接收不到扫描事件,根本问题是WS50的DataWedge广播Action需要手动配置,而非使用默认值——和你之前用RS5100的逻辑一致,RS5100的com.rs5100.data也是在DataWedge里自定义的Action,不是设备默认自带的。
具体配置步骤
- 打开设备上的DataWedge应用,找到当前使用的扫描Profile(没有的话新建一个)
- 进入Profile的「输出设置」(Output)→「Intent输出」(Intent Output)
- 开启「Intent输出」开关,然后在「Action」字段填写你自定义的字符串(比如可以直接沿用之前的
com.rs5100.data,或者换成com.yourapp.scandata这类自定义值) - 确认「投递方式」(Delivery)选择「广播Intent」(Broadcast Intent),保存配置
代码调整
配置完成后,直接用你自定义的Action注册广播接收器即可,和之前RS5100的代码逻辑完全一致:
var filter = new IntentFilter("你在DataWedge里设置的Action字符串"); RegisterReceiver(receiver, filter);
关于Bundle的说明
你在Logcat里看到的Bundle是广播携带的扫描数据内容,接收不到事件和Bundle无关——只有先匹配到正确的Action,才能拿到这个Bundle里的扫描信息。后续如果需要解析数据,再从Intent中取出Bundle,读取com.symbol.datawedge.data_string这类字段即可。
内容的提问来源于stack exchange,提问作者Serve Laurijssen
相关产品推荐
相关产品推荐

