C#实现条码扫描:如何调用ASCOM Myco 3手持机扫描光学组件
Xamarin Form 对接 ASCOM Myco 3 条码扫描实现方案
ASCOM Myco 3 无需额外安装专属驱动、DLL 即可实现基础扫码功能,设备本身默认支持广播输出扫码结果,直接用安卓原生广播机制对接即可,适配逻辑如下:
- 先进入设备自带的【扫描设置】菜单,确认扫码输出模式调整为「广播输出」,关闭「输入框自动填充」模式,避免扫码结果直接注入当前焦点输入控件
- 在安卓平台项目中新建自定义广播接收器,监听设备扫码结果广播,默认的扫码结果广播 Action 为
com.ascom.scanner.SCAN_RESULT,结果对应的 Extra 键名为scanner_result,如果固件版本不同参数不匹配,可直接在扫描设置中自定义这两个参数值,避免冲突 - 广播接收器实现参考代码:
[BroadcastReceiver(Enabled = true)] [IntentFilter(new[] { "com.ascom.scanner.SCAN_RESULT" })] public class AscomScanReceiver : BroadcastReceiver { public event EventHandler<string> ScanResultReceived; public override void OnReceive(Context context, Intent intent) { string result = intent.GetStringExtra("scanner_result"); if (!string.IsNullOrWhiteSpace(result)) { ScanResultReceived?.Invoke(this, result); } } }
- 按照你现有适配 Zebra、iOS 扫描外套的依赖服务架构,把广播收到的扫码结果透传到 Xamarin Form 共享层即可,上层业务代码无需修改
- 如果需要软件触发扫码(不用按物理扫描键),只需在安卓项目中主动发送 Action 为
com.ascom.scanner.TRIGGER_SCAN的广播即可触发扫描,发送 Action 为com.ascom.scanner.STOP_SCAN的广播即可停止扫描
内容的提问来源于stack exchange,提问作者Daniele
相关产品推荐
相关产品推荐

