android - Zebra TC25 - 如何在后台继续接收广播 Intent

标签 android barcode-scanner

在启用条形码读取的广播 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/

相关文章:

android - view.getDrawingCache() 只工作一次

java - 如何使用 Android Selector 更改 PopupMenu 中的项目颜色?

ios - 在iOS 8中扫描条形码并显示条形码

javascript - Onchange 不触发

iOS PhoneGap 1.7.0 + 条码扫描插件问题

c# - Xamarin-文件 :///android_asset

android - Android 中的 ServiceManager 类在哪里?

android - 使用服务中的媒体播放器在后台播放视频

iphone - 应用程序中的条形码识别

qt4 - Qt4中的USB条码阅读器