Hello all:
I know there was a question in 2020 about enabling/disabling the scanner on Android devices with intent and at that time it was not possible! Wanted to follow up and see if this has been added? We would like to do it with the intent so we do not need to load any SDKs! It seems that most mfgs are moving in this direction … are you guys there yet?
Thank you
Marshall
Hello @Marshall_Ellis,
Looks like you haven’t posted in awhile, welcome back.
We did add quite a few Intent Actions in our SDK 1.29, for reference we are on 1.34 now.
Check out the following section of our SDK documentation that covers exposed Intent Actions:
https://datalogic.github.io/android-sdk-docs/reference/com/datalogic/device/Intents.html#ACTION_CONFIGURATION_COMMIT
Specifically, ACTION_CONFIGURATION_COMMIT can be sent a map of properties as an extra bundle.
Check out this page that covers all the properties that can be sent:
https://datalogic.github.io/android-sdk-docs/reference/com/datalogic/device/configuration/PropertyID.html
There are a few ways to go about disabling the scanner, one would be to disable the triggers, which are part of the Keyboard Triggers Group.
Another way would be to disable the Wedges, likely only one is enabled, but you can disable all of them to be sure no data will be sent that way.
Personally, I prefer to disable the triggers, so when the user pulls the trigger nothing happens and then the user does not expect data to be read.
Drew Hugentobler
L3 Mobile Computer Specialist Support Engineer
1 Like
Drew:
I know I haven’t posted in a while … because never had a problem with your stuff 
Thanks a ton for your help!
So can this be done without adding the SDK to the app?
Thank you
Marshall
Hello @Marshall_Ellis ,
yes, through the ConfigurationManager class by setting the WEDGE_KEYBOARD_ENABLE and WEDGE_INTENT_ENABLE propertyID then issuing an ACTION_CONFIGURATION_COMMIT you can turn on/off the KeyboardWedge or the IntentWedge respectively.
With KEYBOARD_RIGHT_TRIGGER, KEYBOARD_LEFT_TRIGGER, KEYBOARD_FRONT_TRIGGER, KEYBOARD_PISTOL_TRIGGER, and the optional KEYBOARD_MOTION_TRIGGER propertyID you can enable or disable the triggers.
Regards
Simone
The documentation of ACTION_CONFIGURATION_COMMIT also includes some examples:
java code example:
Intent intent = new Intent(Intents.ACTION_CONFIGURATION_COMMIT);
HashMap map = new HashMap();
map.put(PropertyID.WIFI_802_DOT_11_MODE, Wifi802Dot11Mode.WIFI_802_DOT_11_ABG.toString());
map.put(PropertyID.CODE128_ENABLE, "true")
map.put(PropertyID.CODE128_LENGTH2, "10");
map.put(PropertyID.CODE128_USER_ID, String.format ("\\u%04x", (int)'a'));
intent.putExtra(Intents.EXTRA_CONFIGURATION_CHANGED_MAP, map);
mContext.sendBroadcast(intent);
ADB example with extra data as List:
adb shell am broadcast -a com.datalogic.device.intent.action.configuration.COMMIT
--esal com.datalogic.device.intent.extra.configuration.CHANGED_MAP "TOUCH_MODE_SENSITIVITY=TOUCH_MODE_STYLUS,800=10,CODE128_ENABLE=false"
ADB example with extra data as String:
adb shell am broadcast -a com.datalogic.device.intent.action.configuration.COMMIT
--es com.datalogic.device.intent.extra.configuration.CHANGED_MAP "TOUCH_MODE_SENSITIVITY=TOUCH_MODE_STYLUS,800=10,CODE128_ENABLE=false"
Simone Callegari
L3 Mobile Computer Specialist Support Engineer
Hi, I come in that discussion because have the same problem : I develop apps to scan with Intent, I have validated many manufacturers with that simple method and want to try to pass Datalogic terminals that were integrated via my React Native module before, with intent .
I am not sure that you understand what we simple want : here is a user manual to parameter on any terminals the scan via intent : How to install our applications ?
My question is : at that date , do you provide the users with a parameter apk on your Android terminals that enable to do that ?
thanks
Hi William @william_Piedfort
Thank you for your inquiry regarding Intent-based scanning with Datalogic devices.
I’m not entirely sure what you mean by “parameter apk”, but I can confirm that Datalogic devices fully support barcode scanning via Intent, and there are multiple ways to configure this functionality:
- Using DL Settings App: All Datalogic Android devices come with a pre-installed “DL Settings” application that allows configuration of scanning parameters, including Intent Wedge setup. You can access this app to enable Intent scanning without any coding.
- ScanAPI and SDK: For programmatic configuration, you can use our Android SDK which provides the IntentWedge class for fine-tuning the Intent behavior.
- Scan2Deploy: For easy deployment across multiple devices, you can create a configuration QR code using our Scan2Deploy tool that can automatically configure the Intent Wedge settings on any Datalogic device.
- EMM/MDM Integration: Datalogic devices support OEM Config which exposes scanning parameters to Enterprise Mobile Management systems, allowing you to remotely configure Intent Wedge settings across your device fleet.
Intent Wedge Configuration
In DL Settings, you can enable Intent Wedge by going to:
- Scanner → Wedge → Intent
- Enable the Intent mode
- Configure the following parameters:
- Action name (default: “com.datalogic.decodewedge.decode_action”)
- Category name (default: “com.datalogic.decodewedge.decode_category”)
- Delivery mode (Broadcast, StartActivity, or StartService)
- Extra field names for barcode data
Once configured, your React Native module can receive scan data by listening for these intents with the specified parameters.
Programmatic Configuration
If you need to configure this programmatically, our SDK provides the necessary APIs:
java
// Get a reference to ConfigurationManager
ConfigurationManager configManager = new ConfigurationManager(context);
// Get the IntentWedge configuration
Property intentWedgeEnable = configManager.getPropertyById(PropertyID.WEDGE_INTENT_ENABLE);
Property intentAction = configManager.getPropertyById(PropertyID.WEDGE_INTENT_ACTION_NAME);
Property intentCategory = configManager.getPropertyById(PropertyID.WEDGE_INTENT_CATEGORY_NAME);
Property intentDeliveryMode = configManager.getPropertyById(PropertyID.WEDGE_INTENT_DELIVERY_MODE);
// Enable Intent Wedge
intentWedgeEnable.set(true);
// Disable Keyboard Wedge
Property keyboardWedgeEnable = configManager.getPropertyById(PropertyID.WEDGE_KEYBOARD_ENABLE);
keyboardWedgeEnable.set(false);
// Apply changes
configManager.commit();
For your React Native integration, you’ll need to create intent filters in your application to receive the scanned data.
Important Configuration Notes
When setting up Intent Wedge for your application, there are two critical settings you should adjust:
- Disable KeyboardWedge: By default, the Keyboard Wedge is enabled on Datalogic devices. When using Intent Wedge, you should disable the Keyboard Wedge to prevent duplicate data:
- Navigate to Scanner → Wedge → Keyboard
- Disable the Keyboard mode
- This prevents the scanner from sending keystrokes while you’re using Intent mode
- Check/Remove Standard Formatter Suffix: By default, Datalogic devices have a Line Feed [LF] suffix configured in the Standard Formatter. You might want to remove or adjust this:
- Navigate to Scanner → Formatting → Standard
- Check the Suffix field and remove [LF] if not needed for your application
- This ensures your barcode data is transmitted exactly as scanned without additional characters
I hope this addresses your needs. If you require more specific details about our Intent implementation, please let me know.
Simone Callegari
Datalogic Mobile Products - L3 Specialist SW Engineer
1 Like
Hi @Simone_Callegari and thank you very much for this valuable & convincing description of this important feature. I am pleased that your dev team has installed that so that our apps can be installed on your android terminals !
Do you want to participate to the new validation that can be done in 2x10mn at distance offline by you so that I can install the Datalogic decrypt code of answer to intent in our module or do I need to request a terminal on loan ? (we can continue in PM the discussion)
best regards
Hello William,
Yes, let’s go to private message.
I think it would be best if you contact our Product Marketing Managers or one of our local offices to request a unit. I will try to put you in touch. If possible, provide me your direct email via PM.
Regards
Simone