0

我的客户将 Zebra TC51 设备与 RhoMobile 一起使用。他想从 Android 7.1 升级到 Android 8.1。使用最新的救生员更新升级后,我们的 RhoMobile 应用程序将无法再使用扫描仪。它根本没有反应。该实现使用 Barcode Javascript API,它在 TC51 Android 7.1 上运行良好,实际上也适用于带有最新 Lifeguard 的 Android 8.1 的新 TC52 设备。该问题仅存在于升级的 TC51 设备中。

无论如何,我在使用 DataWedge 作为条形码提供程序的任何 TCx 设备和 Cordova Container 上都取得了巨大的成功。我也试图让它与 RhoMobile 一起使用。

这是我的 AndroidManifest.erb 代码

...
  <receiver android:name='com.rho.intent.IntentReceiver'>
    <intent-filter>
      <action android:name='<%= @appPackageName %>.ACTION'/>
      <action android:name='com.symbol.datawedge.api.RESULT_ACTION'/>
      <action android:name='com.symbol.button.L1'/>
      <action android:name='com.symbol.button.R1'/>
      <action android:name='com.symbol.button.L2'/>
      <action android:name='com.symbol.button.R2'/>
      <category android:name='android.intent.category.DEFAULT'/>
    </intent-filter>
  </receiver> 
</application>
...

我的代码看起来像这样

try {
    Rho.Intent.startListening((data) => {
        alert(JSON.stringify(data));
    });
    const intentParams = {
        action: "com.symbol.datawedge.api.ACTION",
        intentType: Rho.Intent.BROADCAST,
        data: {
            "SEND_RESULT": "false",
            "com.symbol.datawedge.api.GET_VERSION_INFO": ""
        }
    };
    Rho.Intent.send(intentParams);
} catch (e) {
    alert(e);
} 

当我运行代码并监控时logcat看到收到了意图并发送了答案

09-24 10:10:02.863  1732  1732 D com.symbol.datawedge.api.m: 
onReceive(..):com.symbol.datawedge.ScanningService@4191885,Intent { 
act=com.symbol.datawedge.api.ACTION flg=0x10 (has extras) }
09-24 10:10:02.877  1413  1477 E ActivityManager: Sending non-protected broadcast 
com.symbol.datawedge.api.RESULT_ACTION from system 1732:com.symbol.datawedge/u0a10 pkg 
com.symbol.datawedge

但它从未在我的应用程序中收到。任何提示/想法?

4

0 回答 0