My customer is using Zebra TC51 devices together with RhoMobile. He wants to upgrade from Android 7.1 to Android 8.1. After the upgrade using the latest lifeguard update, our RhoMobile Application is no longer able to use the scanner. It is not reacting at all. The implementation is using the Barcode Javascript API, and it works fine on TC51 Android 7.1 and actually also on new TC52 Devices with Android 8.1 with latest Lifeguard. The problem exists only with upgraded TC51 devices.
Anyways, i had great success with any TCx device and a Cordova Container using DataWedge as the Barcode provider. I tried to get this to work with RhoMobile as well.
Here is my AndroidManifest.erb code
...
<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>
...
And my code looks like this
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);
}
When i run the code and monitor logcat
is see that the intent is received and an answer is sent
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
but it is never received in my app. any hints/ideas?