在启用条形码读取的广播 Intent 后,我正在为我们的应用程序使用 Zebra TC25 DWDemo 配置文件。当我的应用程序位于前台并且屏幕打开时,一切正常。但是,一旦我使用设备电源按钮关闭屏幕,它就会停止接收广播,并且扫描条形码硬件不会响应。 (红色激光阅读灯不再响应侧面按钮的点击)。
我确保成功获取部分唤醒锁(通过在设备屏幕关闭时在 logcat 上记录 mssgs),并注册了 WakeFullBroadcastReceiver 以获取硬件的广播 Intent 。
当设备屏幕关闭且 CPU 保持唤醒状态时,如何保持硬件处于 Activity 状态并读取条码并将其广播到我的应用程序?
最佳答案
DWDemo 应用程序正在使用 DataWedge 捕获扫描数据,特别是“DWDemo”配置文件,如果您从应用程序内转到设置屏幕,则可以看到此数据。 DataWedge 是设备上的一项单独服务,仅仅因为您的应用程序具有部分唤醒锁,我很确定这不会阻止 DataWedge 服务在屏幕关闭时仍然处于 sleep 状态,而且您还需要考虑其他场景,例如设备进入打瞌睡模式并清除现有的唤醒锁。 DataWedge 的主要设计目的是当不同的应用程序出现在前台时更改扫描仪配置;当屏幕关闭时,就 Android 而言,应用程序会转到后台,因此 DataWedge 也可能会切换出“DWDemo”配置文件。
根据您的需求,我认为通过 native SDK(适用于 Android (Java) 和 Xamarin 的 EMDK)直接访问扫描仪会更有意义。我注意到的另一个 future 选项是 Zebra 正在引入一个“唤醒源”参数 ( http://techdocs.zebra.com/mx/powermgr/#wake-up-sources-enabledisable ),但是这需要 MX8.0+,但该参数(还?)不适用于 TC2x,因为根据命名,MX8.0+ 需要 Oreo .
为了清楚起见,我在 Zebra 工作。
关于android - Zebra TC25 - 如何在后台继续接收广播 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52914879/