Zebra TC25 - 如何在后台继续接收广播意图

Zebra TC25 - how to keep on receiving broadcast intents while on background

在为条码读取启用广播意图后,我正在为我们的应用程序使用 Zebra TC25 DWDemo 配置文件。当我的应用程序在前台并且屏幕打开时,一切正常。但是一旦我用设备电源按钮关闭屏幕,它就会停止接收广播并且扫描条码硬件没有响应。 (红色激光阅读灯不再响应侧面按钮上的点击)。

我确保成功获取部分唤醒锁(通过在设备屏幕关闭时在 logcat 上记录 mssgs)并注册了 WakeFullBroadcastReceiver 以获取硬件的广播意图。

如何在设备屏幕关闭且 CPU 保持唤醒时保持硬件活动并获取条形码读取和广播到我的应用程序?

DWDemo 应用程序正在使用 DataWedge 捕获扫描数据,特别是 'DWDemo' 配置文件,如果您从应用程序内转到设置屏幕,您可以看到这一点。 DataWedge 是设备上的一项单独服务,只是因为您的应用程序具有部分唤醒锁,我很确定这不会阻止 DataWedge 服务在屏幕关闭时仍然处于休眠状态,另外您还需要考虑其他情况,例如设备进入休眠模式并清除现有的唤醒锁。 DataWedge 主要设计用于在不同应用程序出现在前台时更改扫描仪配置;当屏幕关闭时,就 Android 而言,应用程序会进入后台,因此 DataWedge 也可能会切换出 'DWDemo' 配置文件。

根据您的需要,我认为通过本机 SDK、EMDK 直接访问扫描器更有意义,EMDK 可用于 Android (Java) 和 Xamarin。我注意到的另一个未来选项是 Zebra 引入了一个 'Wakeup sources' 参数 (http://techdocs.zebra.com/mx/powermgr/#wake-up-sources-enabledisable),但是它需要 MX8.0+,而 MX8.0+ 还不能用于 TC2x,因为 MX8.0+ 需要 Oreo,基于关于命名。

为清楚起见,我为 Zebra 工作。