Data wedge and EMDK (disable and enable scanning).

Hi my question ,

Is there a possible way of turning off the data wedge (scanning) programmatically when my activity in Xamarin Android is on the login page then after log in my scanning activity in Xamarin Android enables the scanning using EMDK scanner?

Thanks.

Raven Supilanas

Matt Dermody
DataWedge is controllable via

DataWedge is controllable via Intent driven APIs:

DataWedge APIs - Zebra Technologies TechDocs

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Gabriel Chavez
This is a terribly unhelpful

This is a terribly unhelpful reply.

I'm having the same problem.  I've written a service to handle barcoding and I don't want to use Datawedge.  I all barcoding in my app to be accomplished via the EMDK.  Since I can't fiddle with each device my app may be installed on, I need to block Datawedge from within my app.

 

You linked a page with a list of links.  If you can't actually provide an answer or an example, could you please narrow it down to where in that giant list of information the solution to disabling Datawedge when using EMDK is?

Thanks,

Gabe

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Matt Dermody
Terribly unhelpful? The

Terribly unhelpful?

The request was specifically asking if you could programmatically disable DataWedge from an application that leverages the EMDK for scanning and I linked to the comprehensive documentation on the DataWedge APIs that can be interfaced via intents. May I suggest you actually read the "list of links" to find what you're looking for:

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Gabriel Chavez
Thank you, I reviewed the

Thank you, I reviewed the article at that link, but I'm unclear on how to use the example code.  I guess it will simply have to use the trial and error approach since complete examples that show code in context are extremely rare in Zebra's technical documentation.

In fact, I read quite a bit of the documentation about DataWedge, and unless I'm misunderstanding what I read, apps must be configured to listen for DataWedge intents and handle them.  The app I've created to test the scanning services that are consumed as dependencies in our other offerings has no such registration, yet DataWedge appears to be handling the scanning and my EMDK code is totally bypassed.

I'm hoping that throwing the code to disable DataWedge into a splash screen activity does the trick.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Matt Dermody
DataWedge is the "easy button

DataWedge is the "easy button" for scanning integration with Zebra Android devices and unless you have some extremely specific use case that would dictate the need for EMDK based scanning then I would encourage you to develop your application to leverage DataWedge instead. DataWedge is maintained and updated independently of your application so as new versions of OS and device scan engines come out DataWedge can be updated accordingly without you having to maintain and recompile against new versions of the EMDK. I'm also fairly certain Zebra is moving everyone in this direction and is starting to deprecate EMDK based scanner integration.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Gabriel Chavez
My fear with such a practice

My fear with such a practice is that users can mess with DataWedge, change settings, enable/disable it, or otherwise circumvent the functionality our apps depend on, introducing a new support burden onto us.

We provide warehouse management software, and scanning bins and inventory is a central function in our handheld app.

I can easily imagine a scenario in which a user disables DataWedge not realizing it's a dependency of other applications on the device, including ours.  They might not even notice that barcode-scanning has failed in our app until hours or days later, and since our app may be the only one on the device they use, they may assume the failure is with our product. 

By depending on DataWedge, our organization may be forced to incur unanticipated increased support responsibilities and related costs.  That's a problem I'd have a hard time explaining to my boss.  If we're forced into that, I suppose we'll have to cross that bridge when we come to it.

Thanks for your help though, I'm grateful for it.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Matt Dermody
I work for Manhattan

I work for Manhattan Associates and am VERY familiar with your warehouse management use case. From my perspective, as the app developer you should not necessarily be responsible for providing that level of lock down on the devices unless you are also reselling, implementing, and managing the hardware yourself. If end user sabotage is the specific reasoning behind using the EMDK for scanner integration instead of DataWedge then I would recommend including an implementation requirement for restricting end user access to Settings and applications like DataWedge. This can be accomplished with any of the lockdown / kiosk launchers that come included with any legitimate EMM like SOTI or AirWatch. Device lockdown can also be accomplished without an EMM with the Enterprise Home Screen custom launcher from Zebra, which is a complimentary solution, part of their Mobility DNA suite.

Enterprise Home Screen - Zebra Technologies TechDocs

Your application + DataWedge Integration + Device Lockdown = Easier support and scalability to other device models and scanner types long term

Your application + EMDK + No lockdown = Increased maintenance due to upkeep around the EMDK integration

Vote: 
Vote up!
Vote down!

Points: 1

You voted ‘up’


Albert Jasinski
Currently I'm using DataWedge

Currently I'm using DataWedge to scan barcode into text field of web-app.
I'm not planning to change DW for EMDK, but I wish to prevent scanning anything in "meantime" when content of web-app is not fully loaded yet.
I was thinking to disable scanner by DataWedge API when content is still loading (app displays loading animation) and enable it again when content is loaded.
My question is: Should I disable/enable DataWedge in total by using something like this:

Intent i = new Intent();
i
.setAction("com.symbol.datawedge.api.ACTION");
i
.putExtra("com.symbol.datawedge.api.ENABLE_DATAWEDGE", false);
context
.this.sendBroadcast(i);

or maybe there is another DW API command that would disable/enable hardware trigger when its needed?


Another idea was to switch profiles between quiet and normal - but in this case I would have to set these profiles up in all devices (or by app which means more programming)


Thanks

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Darryn Campbell
Hi Albert, you will be better

Hi Albert, you will be better off using the Scanner Input Plug-in API to disable / enable scanning in the situation you describe: Scanner Input Plug-in - Zebra Technologies TechDocs .  This API will disable / enable the barcode plugin of the DataWedge profile and it will be quicker than disabling / re-enabling the entirety of DataWedge

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Albert Jasinski
Hi Darryn,Thanks for quick

Hi Darryn,
Thanks for quick reply, now just wondering what is the difference between suspend/resume and disable/enable commands. There is description, but its not clear for me. Maybe in my case suspend/resume would be good enough ?
And yes, I was worried about - that switching off/on would take to much time, when users want to scan quickly barcodes (scanner is used to sort items to boxes, so it is going very quickly).

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Albert Jasinski
Thanks for good advice -

Thanks for good advice - PLUGIN_ENABLE and PLUGIN_DISABLE perfectly works

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Micah Stoner
diff from this to SET_CONFIG

What the diff between using this to enable/disable scanner button and using SET_CONFIG > barcode_trigger_mode?

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Darryn Campbell
@Micah Stoner.  When barcode

@Micah Stoner.  When barcode_trigger_mode is set to disabled this is analogous to severing the connection to the hardware trigger key, so a user can't press the hardware trigger but can still invoke scans with the "Soft Scan Trigger" API.  Disabling the scanner as discussed in this thread prevents both hardware and software scans.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Log in to post comments