首页 > 解决方案 > TC52、Android 8.1 上的 RhoMobile:“DS8178 蓝牙扫描仪未连接......”

问题描述

我正在尝试让现有的 RhoMobile APK 在 TC52、Android 8.1 上运行。该应用程序在 TC51、Android 6 上运行良好。在 TC52 上,当我启动应用程序时,我收到一条祝酒消息

DS8178 Bluetooth Scanner is not connected, therefor BTPairing Utility will be started.

问题是 - 忽略 BTPairing Utility App(我也尝试禁用它) - 我无法在我的 rho 移动应用程序中使用内置扫描仪。当我尝试使用它时,我在日志中看到以下消息

decodeSound 条码属性只能在扫描仪完成初始化后设置

查看底层代码,扫描仪似乎尚未初始化,可能是由于无法配对蓝牙扫描仪。但是现在有这样的扫描仪,而且永远不会有。有人知道如何禁用此行为吗?

编辑 1:这是我用于启用扫描仪的 javascript 代码

 Rho.Barcode.enable({ allDecoders: true }, this.onScan);

但是,我认为它发生在访问 javascript 之前;该应用程序托管在网络服务器上;即使我禁用 WIFI 并启动应用程序,也会显示吐司。似乎 RhoMobile 正在尝试设置所有已知的扫描仪。

编辑 2:当我枚举所有扫描仪时,我按此顺序获取这些扫描仪

Scanners found: '[
    "Camera Scanner",
    "2D Barcode Imager",
    "Bluetooth Scanner",
    "RS6000 Bluetooth Scanner",
    "DS3678 Bluetooth Scanner",
    "LI3678 Bluetooth Scanner",
    "DS2278 Bluetooth Scanner",
    "DS8178 Bluetooth Scanner"]'
Default scanner: '2D Barcode Imager'

默认扫描仪由

Rho.Barcode.getProperty("friendlyName");

编辑3:好的,正如评论中所建议的,使用从枚举返回的实际实例;触发扫描仪按钮效果很好。

剩下的是要求连接的吐司DS8178 Bluetooth Scanner;有没有办法从 config.xml 禁用扫描仪?

标签: androidrhomobile

解决方案


这个错误:

DS8178 蓝牙扫描仪未连接,因此 BTpairing Utility 将启动。

不是来自 RhoMobile,它是从低级扫描框架生成的。我检查了一个更新的设备,我很高兴地说他们修复了拼写错误。当某些东西(EMDK 或 DataWedge)试图启用 DS8178 扫描仪时会导致此问题。DS 扫描仪支持仅在最近版本的移动计算扫描仪框架中添加,因此可能解释了您在 TC51 和 TC52 之间看到的行为差异。

RhoMobile(在 Zebra Android 设备上)包装 EMDK 并将每个受支持的扫描仪公开为单独的 Barcode 对象,您可以在 enumerate 返回的数组中看到所有这些。奇怪的是,在您进行第二次编辑时,默认扫描仪是“2D Barcode Imager”。

有几个选项/可能性:

  • RhoMobile 框架中存在错误,并且由于某种原因正在启用 DS8178 扫描仪。我检查了https://github.com/rhomobile/rhodes/tree/master/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode并且看不到任何此类错误。Rho 是开源的,但如果你想探索这条路线,它会得到 Tau-Technologies 的支持。
  • 您设备上的其他东西正在启用 DS8178 扫描仪,例如 DataWedge 配置文件或使用 EMDK 的其他应用程序。您可以禁用 DataWedge(从 DataWedge 应用程序设置)并重新启动设备以进行测试。
  • TC52 有问题。我会说这是最不可能的,因为我从未听说过类似的问题

无法通过 XML 禁用任何扫描仪


推荐阅读