minvws / nl-covid19-coronacheck-app-android

European Union Public License 1.2
44 stars 28 forks source link

Using 2D barcode imagers on Android Enterprise Devices delivering data via broadcast intents. #48

Open RaymondBuil opened 3 years ago

RaymondBuil commented 3 years ago

Describe the bug, issue or concern

To make use of Android Enterprise recommended devices there is a need to be able to implement and use 2D barcode Imagers which are inplemented in these devices.

To make this possible, an intent broadcast receiver needs to be added to the QrCodeScannerFragment. Android Enterprise devices such as Zebra Technologie's Mobile Devices TC2X, TC5x, TC7x as well as the ET5x series (all running on Android Enterprise) are capable of sending an broadcast intent with additional information as soon as a QR Barcode gets scanned with the integrated imager. (no use of camera). This makes the barcode scanning procedure more flexibele as these imager are build for barcode scanning purposes.

As often Android Enterprise devices are used within the Events business, an integration of 2D imagers is a must have. Besides using the integrated barcode imager, also BlueTooth enabled ringscanners can be used to scan the QR Barcode. Same mechnisme is being used to send the QR Barcode content for validation.

Sample code on how to implement can be provided. We have used these source files to test and implement the Zebra 2D Imagers being used at the TC2x, TC5x, TC7x and ET5x series.

To Reproduce

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

A clear and concise description of what you expected to happen.

Screenshots

If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

Smartphone (please complete the following information):

Additional context

Add any other context about the problem here.

Governance

SanderVeer commented 3 years ago

Hi @RaymondBuil,

Thanks for reaching out! Supporting 2D scanners is absolutely something we want to do. We've actually been working on this behind the scenes, and a test of our implementation is currently underway. For this we've made use of Zebra's EMDK instead of Datawedge, which I believe you're describing in the ticket.

Could you elaborate how or why Datawedge would potentially be a better fit rather than using the EMDK? From my understanding Datawedge requires some extra setup regarding profiles to get up and running in combination with our CoronaCheck Scanner app, whereas the EMDK gets bundled and allows users of supported Zebra devices to start using their 2D scanner right away. If this isn't the case I'd love to give Datawedge another try to support a wider range of devices, but during internal testing it seemed using the EMDK was the most foolproof way of letting our users use their 2D scanners.

I'm looking forward to your reply!

RaymondBuil commented 3 years ago

Hi Sander,

Thanks for getting back to me. Good to hear Zebra scan engine implementation is on it’s way. We appreciate this step forward.

Regarding the integration of the Zebra Scan Engine and why I advise to use DataWedge instead of an EMDK implementation.

As Zebra offers a wide range of mobile devices, we also deliver a wide range of barcode scanning solutions. All of these solutions get configured, managed by DataWedge using their own specific profile settings. By using the EMDK, a solution per device type and scanning solution needs to be created. DataWedge acts as the single entry for all applications using barcode scanning.

What if you implement an application, based on the EMDK and Barcode API. This apps will claim the scanengine as being the only application, able to use the barcode scanner at that time. Other applications, who also want to use the barcode scanning can not use it, as the single instance of the scanengine has been claimed by that particular app. First this particular app needs to be closed, scanengine needs to be given free and the other app can now claim the scan engine. In an Enterprise environment, where multiple applications are using the barcode scanner, this is not the preferred situation.

As our customer and business partners are using the barcode scanner frequently within multiple applications, DataWedge is the single instance, claiming the scan engine and acting as a being the interface for all the applications.

Besides this, by using DataWedge API’s, we are able to fully control the profiles to be created. We even good check for the list of existing profiles. If the corona check app profile doesn’t exist, the app can create it. It then allows our customers and partners to modify the profile to make other barcode scanning solutions available (think of using a Zebra Ringscanner, Bluetooth connected barcode scanner, USB connected barcode scanner. All of these barcode scanning solutions are implemented within DataWedge); Also feature from DataWedge itself can be used, such as placing a scan button on-top-off all applications, allowing the user to use the screen to trigger the scan engine, instead of using the (Zebra) Yellow scan buttons.

Within the example which I have created, I have used DataWedge; created manually a profile which gets selected when the app is running. It send it’s data back via a broadcast intent and is processed by a receiver implemented at the point where the 2D barcodes gets validated. By doing so, I was able to modify the app with a minimum of code change.

If you wish, I can share the code, I have created.

For more details on DataWedge, please have a look at our techdocs website at: https://techdocs.zebra.com/datawedge/8-2/guide/about/ All details for the DataWedge API are listed over there. By using DataWedge API’s you will be in full control and even more when comparing to the EMDK implementation.

Be advised, I’m still on holiday and will return to office on August 23rd. I will check my email regularly and will respond in case it is necessary. If you wish, we can schedule a meeting after my holiday. If needed, I can provide you some loan equipment, so you can start testing your modifications on a Zebra device. Please let me know.

For further communication, please use my contact details underneath. If you wish, we can communicate into Dutch. Makes life easier in some cases 😊

Looking forward in meeting you.

Met vriendelijke groet,

@.***

Raymond Buil Snr Sales Engineer ZEBRA TECHNOLOGIES Netherlands B.V.

Papendorpseweg 99, Secoya Gebouw A 3528 BJ Utrecht M. +31 650 23 73 22 @.**@.> www.zebra.comhttp://www.zebra.com/

From: SanderVeer @.> Sent: dinsdag 10 augustus 2021 12:14 To: minvws/nl-covid19-coronacheck-app-android @.> Cc: Buil, Raymond @.>; Author @.> Subject: Re: [minvws/nl-covid19-coronacheck-app-android] Using 2D barcode imagers on Android Enterprise Devices delivering data via broadcast intents. (#48)

[External Email]

Hi Raymond,

Thanks for reaching out! Supporting 2D scanners is absolutely something we want to do. We've actually been working on this behind the scenes, and a test of our implementation is currently underway. For this we've made use of Zebra's EMDK instead of Datawedge, which I believe you're describing in the ticket.

Could you elaborate how or why Datawedge would potentially be a better fit rather than using the EMDK? From my understanding Datawedge requires some extra setup regarding profiles to get up and running in combination with our CoronaCheck Scanner app, whereas the EMDK gets bundled and allows users of supported Zebra devices to start using their 2D scanner right away. If this isn't the case I'd love to give Datawedge another try to support a wider range of devices, but during internal testing it seemed using the EMDK was the most foolproof way of letting our users use their 2D scanners.

I'm looking forward to your reply!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_minvws_nl-2Dcovid19-2Dcoronacheck-2Dapp-2Dandroid_issues_48-23issuecomment-2D895906451&d=DwMCaQ&c=Qwsh1H-X9ypOoLLEcAIltQ&r=cn7JtWIM16gugJjs-SW6BDMYqsw1gEVAQtfR1CrKdqs&m=oAVLgm-BOTw9pUSgc83JrkWsGGrqA_ZqzRnwQ2JUofo&s=AY3V0NEDLK9U-ycmBbySQ8STVrE2a8n2F5Uarx2mbx0&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AH5543NJRWMTTSEVYJPWDZ3T4D3YBANCNFSM5BCEKZHQ&d=DwMCaQ&c=Qwsh1H-X9ypOoLLEcAIltQ&r=cn7JtWIM16gugJjs-SW6BDMYqsw1gEVAQtfR1CrKdqs&m=oAVLgm-BOTw9pUSgc83JrkWsGGrqA_ZqzRnwQ2JUofo&s=JUD95WR0oO0isX5iaqiI2-8KlqyGsVtikpBW_K49_KQ&e=. Triage notifications on the go with GitHub Mobile for iOShttps://urldefense.proofpoint.com/v2/url?u=https-3A__apps.apple.com_app_apple-2Dstore_id1477376905-3Fct-3Dnotification-2Demail-26mt-3D8-26pt-3D524675&d=DwMCaQ&c=Qwsh1H-X9ypOoLLEcAIltQ&r=cn7JtWIM16gugJjs-SW6BDMYqsw1gEVAQtfR1CrKdqs&m=oAVLgm-BOTw9pUSgc83JrkWsGGrqA_ZqzRnwQ2JUofo&s=yjN87d4YhnKZpkZ8mNl3VYWNHVoNSwsmZ7DufQdqoQw&e= or Androidhttps://urldefense.proofpoint.com/v2/url?u=https-3A__play.google.com_store_apps_details-3Fid-3Dcom.github.android-26utm-5Fcampaign-3Dnotification-2Demail&d=DwMCaQ&c=Qwsh1H-X9ypOoLLEcAIltQ&r=cn7JtWIM16gugJjs-SW6BDMYqsw1gEVAQtfR1CrKdqs&m=oAVLgm-BOTw9pUSgc83JrkWsGGrqA_ZqzRnwQ2JUofo&s=HS6I58UG5iCToPTg1nZEF5aOTe5Z9aenZnVglpP6F2k&e=.


This email and any files transmitted with it are confidential, and may also be legally privileged. If you are not the intended recipient, you may not review, use, copy, or distribute this message. If you receive this email in error, please notify the sender immediately by reply email and then delete this email.


modest-mark commented 3 years ago

Dear Sander,

To complete the story: There's a lot of 2D scanning Android hardware. Would be nice to for instance offer possibility to use a keyboard wedge function. This currently is not working. Camera only.

Appreciate the possibility to get this working.

Best regards, have a great weekend!

Mark Pronk

DanielDM325 commented 3 years ago

I agree with Mark,

This would be a great addition to this app.

Daniel