Barcode Reader

I've been experimenting with QR code readers on both iphone and android and
have come across Scan [1] which seems to be a major improvement from the
xing barcode reader in that it detects the QR code reader a lot quicker
and with a lot more forgiveness then the Xing app.

I'm wondering how easy it would be to change the default app ODK looks for
when launching the scanner or if this is something that could be overridden
in a setting.

  1. https://play.google.com/store/apps/details?id=me.scan.android.client

Hi Matt,
I believe you can launch other barcode scanners so long as they respond to
the com.google.zxing.client.android.SCANhttp://www.openintents.org/en/node/94intent
action string. If there are muliple apps that respond to the same
intent you should be given the opertunity to choose between them when it is
called.
Unfotunately, I'm not aware of a standard intent string for barcode
scanning like there is for launching the camera app and I'm unable to find
any information on launching the Scan application you linked to via intent.
Regards,
-Nathan

··· On Sat, Jan 26, 2013 at 5:06 AM, Matt Berg wrote:

I've been experimenting with QR code readers on both iphone and android
and have come across Scan [1] which seems to be a major improvement from
the xing barcode reader in that it detects the QR code reader a lot
quicker and with a lot more forgiveness then the Xing app.

I'm wondering how easy it would be to change the default app ODK looks for
when launching the scanner or if this is something that could be overridden
in a setting.

  1. https://play.google.com/store/apps/details?id=me.scan.android.client

--

Since the returned value of the Xing barcode scanner is a string, you can
instead of using type="barcode", define a type="string" and use the
intent:... appearance on the string widget to launch the other barcode app.
This will work as long as that app returns the scan result in the 'result'
extra of the result intent.

If it returns the value through some other field in the result intent,
there would need to be a minor code change in the ExStringWidget, and the
other integer and decimal widgets to take an additional attribute to
identify what field should be accessed for the result value. We'll gladly
incorporate such code changes into the main codebase.

This will move ODK Collect further away from having custom integrations of
3rd party apps toward a more flexible generic interaction.

Mitch

··· On Sat, Jan 26, 2013 at 1:16 PM, Nathan Breit wrote:

Hi Matt,
I believe you can launch other barcode scanners so long as they respond to
the com.google.zxing.client.android.SCANhttp://www.openintents.org/en/node/94intent action string. If there are muliple apps that respond to the same
intent you should be given the opertunity to choose between them when it is
called.
Unfotunately, I'm not aware of a standard intent string for barcode
scanning like there is for launching the camera app and I'm unable to find
any information on launching the Scan application you linked to via intent.
Regards,
-Nathan

On Sat, Jan 26, 2013 at 5:06 AM, Matt Berg mlberg@gmail.com wrote:

I've been experimenting with QR code readers on both iphone and android
and have come across Scan [1] which seems to be a major improvement from
the xing barcode reader in that it detects the QR code reader a lot
quicker and with a lot more forgiveness then the Xing app.

I'm wondering how easy it would be to change the default app ODK looks
for when launching the scanner or if this is something that could be
overridden in a setting.

  1. https://play.google.com/store/apps/details?id=me.scan.android.client

--

--

--
Mitch Sundt
Software Engineer
University of Washington
mitchellsundt@gmail.com