我的客户将 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
但它从未在我的应用程序中收到。任何提示/想法?