Dear Zebra Support Team,
I hope this message finds you well. I am reaching out for assistance with an issue I’m encountering while working with DataWedge on a Zebra TC26 device running Android 14 and DataWedge version 15.0.9.
Issue Description
I am trying to configure a profile programmatically on DataWedge and retrieve the list of DataWedge profiles using the com.symbol.datawedge.api.GET_PROFILES_LIST API.
However, despite successfully sending the intent (confirmed by the log: "Intent sent successfully to get DataWedge profiles list"), I am not receiving any response from DataWedge. The broadcast receiver does not seem to capture the intent containing the profiles list.
Current Implementation
1. Profile Creation and Configuration
I am dynamically creating and configuring a DataWedge profile named "ABC" using the following steps:
Associate the profile with my app’s package name.
Configure the INTENT plugin to use a custom intent action (<packageName>.scan) and enable BROADCAST delivery.
Set the Intent Category to android.intent.category.DEFAULT.
Here’s the relevant code snippet for profile configuration:
public profileIntentOutputConfig(profileName: string, scanIntentName: string): DataWedgeProfileConfig {
return {
PROFILE_NAME: profileName,
PROFILE_ENABLED: 'true',
CONFIG_MODE: 'UPDATE',
PLUGIN_CONFIG: [
{
PLUGIN_NAME: 'INTENT',
RESET_CONFIG: 'true',
PARAM_LIST: {
intent_output_enabled: 'true',
intent_action: scanIntentName,
intent_delivery: DataWedgeIntentDelivery.BROADCAST,
intent_category: 'android.intent.category.DEFAULT',
},
},
// Other plugin configurations...
]
};
}
2. Sending the Intent
I am sending the following intent to request the profiles list:
const intent = {
action: 'com.symbol.datawedge.api.ACTION',
extras: {
'com.symbol.datawedge.api.GET_PROFILES_LIST': ''
}
};
(window as any).plugins.intentShim.sendBroadcast(intent, successCallback, errorCallback);
The log "Intent sent successfully to get DataWedge profiles list" confirms that the intent is sent successfully.
3. Broadcast Receiver
I have set up a broadcast receiver to listen for the response:
(window as any).plugins.intentShim.registerBroadcastReceiver(
{
filterActions: [
'com.symbol.datawedge.api.RESULT_ACTION'
],
filterCategories: [
'android.intent.category.DEFAULT'
]
},
(intent) => {
console.log('Received Intent:', intent);
if (intent.action === 'com.symbol.datawedge.api.RESULT_ACTION') {
const profilesList = intent.extras['com.symbol.datawedge.api.RESULT_GET_PROFILES_LIST'];
if (profilesList) {
console.log('DataWedge Profiles List:', profilesList);
}
}
}
);
However, the broadcast receiver does not log any intents, and I am unable to retrieve the profiles list.
What I’ve Tried
Verified that the DataWedge profile is correctly configured with the INTENT plugin.
Ensured that the >Intent Category is set to android.intent.category.DEFAULT.
Restarted the DataWedge service on the device.
Confirmed that the app has the necessary permissions:
RECEIVE_BOOT_COMPLETED
WAKE_LOCK
FOREGROUND_SERVICE
Request for Assistance
Could you please help me identify what might be wrong with my implementation? Specifically:
Are there any additional configurations required in the DataWedge profile to enable the GET_PROFILES_LIST API?
Is there a known issue with DataWedge version 15.0.9 or Android 14 that might be causing this behavior?
Are there any debugging steps I can take to further investigate why the broadcast receiver is not capturing the response?
Any guidance or suggestions would be greatly appreciated! Please let me know if you need additional information or logs from my side.
Thank you for your time and support!
0 Replies