QR codes revisited
I had a brief flirtation with QR codes (what?) in 2004, but it petered out somewhere along the way. I stumbled across QR codes again recently and thought I'd see what the current state of things was. After all, we now all have smartphones with significant processing power, a permanent net connection, and crappy little cameras.
Google quickly lead me to ZXing (pronounced "zebra crossing"), and I quote:
open-source, multi-format 1D/2D barcode image processing library implemented in Java. Our focus is on using the built-in camera on mobile phones to photograph and decode barcodes on the device, without communicating with a server. We currently have production-quality support for:That sounds pretty good. And the supported device list is even better: JavaME, Android, RIM/Blackberry, iPhone, BUG, and a Symbian port (just getting started).
- UPC-A and UPC-E
- EAN-8 and EAN-13
- Code 39
- Code 128
- QR Code
- ITF
I have a Blackberry 8310. So I go to the download page, no binaries or OTA installers, just a 32 Mb archive. Mmmh. Okay, no problem, I compile from source all the time. Grab the archive, open the README.
"you will need to have Apache's Ant tool installed to run this"Okay, no problem. I have a linux dev box with that installed. From the command line given I also glean I will need a JDK which I don't have installed, so I grab and install that. Read on, and saw I needed Sun's Java Wireless Toolkit. Okay, installed that too. Hey, I need some files from the Blackberry JDK. Okay, grabbed that... eventually (way to make downloads not easy and not cross-platform, RIM) and extracted the .jar files I needed. Tried to compile, it says I need something called "proguard". Googled it, grabbed and installed. Compiled again. Warnings, no errors. Ended up with a .jar file, which I had to convert to a .cod file using arcane instructions, but to no avail. I think this is because I compiled on a linux box and the blackberry JDK is a windows box.
At this point I said "sod it". I hope the iPhone version is easier to install, but from the getting started guide I get a definite "fiddle with it" feeling. Which is okay, I'll try compiling it from scratch tomorrow but since I wanted to play with QR codes (as in RIGHT NOW) I grabbed a copy of BeeTagg - another free app which can read QR codes (and maybe others? I'm not sure) and which has binaries for a ton of phones and mobile operating systems, most supplied via OTA install. Like it should be. And it works, it feels a little slow (but that might be the blackberry) but snap a picture of a QR code and it offers basic decoding and actions - output the decoded text, open the URL, initiate a phone call.
You can encode to QR using online tools like this one which nice because you can fiddle with the ECC settings or this one from ZXing, great because you can encode contact cards, email, geolocation, URL, and more. I'm sure there are offline encoding tools as well, haven't really looked yet. This would be pretty sweet for asset management - with a couple of hundred workstations and massive amounts of servers and assorted other hardware this could help you quickly pull up relevant data on your mobile.
Also amusing: an entire novel rendered only in QR, spread out across a city, with text instructions on how to find the next snippet encoded in QR stickers.
UPDATE: one of the ZXings devs commented (aren't the intarwebs awesome?) and added links for J2ME and BB OTA downloads. He also mentioned (as I feared) that Blackberry is a poor barcode-reading platform, and I am inclined to agree as only the latest models/JDK have direct application access to the camera, the older versions must all invoke the camera application and look for a saved image file. That is pretty weak. Oh well. The BeeTagg app does OK for now, and I'm sure we'll eventually upgrade to newer BBs - I think I'll skip the Storm but the new Curve looks nice.

9 reacties:
Hi, project developer here. The OTA download links are:
J2ME client http://zxing.org/w/BarcodeReader.jad
BB client: http://zxing.org/w/bb/BarcodeReader.jad
Sounds like you went to the trouble of setting up the entire build environment for it, which is indeed a big pain.
The BB client is going to be disappointing. The very latest SDK finally supports access to the camera, but older BBs (and this code that is written for them) must work by invoking the camera application, then looking for a saved image file from it. Adding to that I have not been able to get this one to work on Curve 83xx due to code signing reasons I don't understand. Some have said it works.
The BB is a pretty poor platform for barcode reading, but give this a try. You can try the BeeTagg reader which I have had some modest success with on a Curve.
Hey, thanks for responding! I tried the OTA link (I had a lot of trouble finding this on the google code site but that might be me) - it fails - the OTA installer looks for a "RIM-COD-URL-1: BarcodeReader-1.cod" (mentioned in the .jad file) which it can't find.
I guess your main focus is the Android but don't forget about us geeks stuck in corporate hell :)
You can try again, I might have fixed it.
Here it's not a question of caring or not caring about Blackberry -- these devices simply aren't suited hardware- or software-wise to barcode scanning.
Hi there...
My co. is looking for something like this... they want to implement such a setup so that users can download music through the QR code on their BlackBerries... But I am unable to find any documentation or any help from anywhere on how to implement this... Could you throw some light...
Thanks in advance!
Hey, srowen - I can't get it going. It mumbles something about this app trying to access a secure api and refuses to run, even when I've granted trusted status and set pretty much everything to allow in the security settings. Thanks for responding and trying to fix it, but I guess I'll have to accept that current-gens BBs are poor code-reading devices.
Hi Adisha, you want to look into a QR code generator, like here:
http://www.mobilefish.com/services/qrcode/qrcode.php
and
http://zxing.appspot.com/generator/
You can use these to generate QR codes containing HTTP links. But like srowen said, blackberries are not the greatest barcode reading devices. I'm currently using BeeTagg on mine, it works okay(ish) and that is due to the BB, not the program.
Thanks a ton... But I don't need to deploy anything on my BES server for this... Is that right...???
Correct.
You need:
- Blackberry app to read QR codes (technically you could deploy this using your BES server but it can also be loaded OTA or manually I suppose)
- QR code generator (see earlier links)
- valid URL to embed in QR code
Check out BeeTagg:
http://www.beetagg.com/
I been using http://www.beqrious.com/ to generate my QR codes, its been great they even have a function where you can upload a logo to the center or the QR code.
Blackberry version doesn't work on 9530. "Error starting BarcodeReader: Module attempts to access a secure API
:(
Post a Comment