Once I was walking to class at my university and I noticed a sign on the sidewalk had a QR code on it. Naturally I was astonished, never before seeing QR codes outside of the Android ecosystem, but now that I think back on it I find myself feeling sheepish. QR codes have been widely adopted as a method of quick data transfer; I should not have been surprised to find a QR code plastered on an advertisement. It was, after all, only a matter of time.
To keep up with this QR code phenomenon, one needs the ability to read these codes. Unless you are E.T. or have a computer for a brain, you cannot read QR codes without the assistance of a barcode reader app. Let’s find out which app is the best free barcode/QR code reader, shall we?
(Although the main focus is QR code reading, barcode reading is also discussed in this article.)
Table of Contents
App Name: Barcode Scanner  
Developer: ZXing Team
Download Size: 496 KB
Version Reviewed: v3.53
Requires: Android 1.5 and up
- Can read multiple different types of codes: 1D and 2D codes (e.g. QR codes, Data Matrix, UPC, and more).
- Recognizes what type of code is being read and allows the user to act upon that knowledge.
- Has the ability to scan codes in batch, one after another.
- Can generate QR codes for apps, bookmarks, contacts, and clipboard data.
- Keeps a history, allowing users easy access to previously scanned codes.
- Lacks the ability to decode codes from image files – only works through the camera.
- Does not properly make use of camera flash (on phones that have flash) while scanning codes.
The ZXing team have developed an open-source barcode reading library. This library is the backbone of Barcode Scanner; it allows Barcode Scanner to read many different types of 1D and 2D codes:
- UPC-A and UPC-E
- EAN-8 and EAN-13
- Code 39
- Code 93
- Code 128
- QR Code
- RSS-14 (all variants)
- Data Matrix
- PDF 417 (currently in ‘alpha’ stages)
- Aztec (currently in ‘alpha’ stages)
Scanning codes with Barcode Scanner is as easy as point and shoot: Turn on the app and point it at the code you want to scan. Barcode Scanner will then scan the code, decode it, and display the results to you. What I really like about Barcode Scanner is that it recognizes the different types of codes and displays the relevant results to you. For example, if scanning a QR code for an app, Barcode Scanner will allow you to find the app in Android Market or send an e-mail/SMS to someone informing them about the app. Or, when scanning the ISBN barcode for a book, Barcode Scanner recognizes it as an ISBN and allows me to do a product search, a book search, search the inside the book (through Google Books), and even provides a link to Google Shopper (which must be installed separately). Scanning the UPC barcode for a product, like a Lays Chips bag, provides similar results: Web search, product search, and Google Shopper link.
Of course nothing is ever perfect, and the same holds true for Barcode Scanner. I just praised how Barcode Scanner is able to recognize the different types of codes and show relevant results to users. However, sometimes Barcode Scanner is unable to properly recognize a code. For example, Barcode Scanner is unable to recognize a UPS tracking code, categorizing it as “text”. Now that doesn’t mean Barcode Scanner does not properly read it; it reads the tracking number just fine. It just means it doesn’t know that the number it is reading is a UPS tracking number. On the brightside, it does allow for a Google web search using the number read off the code, which then leads to a link that allows for package tracking via UPS’ website.
In addition to code scanning, Barcode Scanner has the ability to generate and share QR codes for installed apps, contacts, bookmarks, and clipboard data. This feature is secondary to Barcode Scanner’s code scanning capabilities, and is not as developed as one finds in other apps, but it is there to use nonetheless.
Lastly, there are two features I find to be missing in Barcode Scanner. First and foremost, it can only scan codes through the camera. It cannot decode codes from image files (i.e. files you have stored on your phone). I find this to be annoying and would like for Barcode Scanner to be able to decode codes from image files. Secondly, I find Barcode Scanner’s use of camera flash to be fairly poor. There is an option in settings – “Use front light” – that sounds like a feature that makes use of camera flash. However, not only did it not work for me on my Nexus S, but also I would prefer to have a simple toggle button which I can use to turn camera flash on/off while scanning codes.
In the end, the bottom-line is: Barcode Scanner has pioneered barcode/QR code reading on Android and in my book it is still the best reader available despite any caveats it may have.
App Name: QR Droid  
Note: There is a QR Droid Private  version that does not ask for Read Contact Data and Read Browser’s History and Bookmarks permissions.
Download Size: 1.2 MB
Version Reviewed: v3.9
One can think of QR Droid as Barcode Scanner with enhancements – literally. QR Droid uses the ZXing library as part of its app but goes beyond just scanning. With QR Droid users can not only scan codes from the camera but also decode codes from images and image URLs; and QR Droid allows users to generate QR codes for sharing contacts, applications, URLs, phone numbers, calender events, text, SMS, and geolocations. I especially like how QR Droid has a trigger for the camera flash, allowing users to manually turn on the flash when scanning a code if necessary.
QR Droid is a brilliant app. In fact, it would be crowned as Best Free Barcode/QR Code Reader if it wasn’t for one fact: QR Droid works very well with QR Codes, but is only mediocre with other types of codes. As already mentioned, QR Droid uses ZXing library, so all the 1D and 2D codes Barcode Scanner can read are also readable by QR Droid. The issue, however, is QR Droid does not differentiate between the different types of codes. For example, if I scan the UPC code for Axe Bodyspray with Barcode Scanner, it will recognize the code as a product code and will give me the option to do a relevant product search, a normal web search, or to find it in Google Shopper. QR Droid, on the other hand, just reads the data from the UPC code and does not recognize it as a product code; QR Droid just lets me do a normal web search for the data it gained from the UPC code. If the developer of QR Droid better leverages the flexibility of ZXing library by properly integrating recognition of more than just QR codes, QR Droid could easily be barcode/QR code reading master. The fact that the developer is thoughtful enough to create a QR Droid Private version to address the privacy concerns of users speaks volumes of their character and would make QR Droid even more desirable, shall the just-mentioned adjustments be made.
(As a side note, all web searches done through QR Droid are directed to a custom Google search engine where the developer of QR Droid gets advertising revenue from. I personally have no problem with this because a custom Google search engine doesn’t differ than the normal Google search engine in regards to search results. I would, however, prefer the developer be more open and transparent about this fact.)
App Name: QuickMark QR Code Reader  
Developer: SimpleAct Inc.
Download Size: 1.1 MB
Version Reviewed: v4.0.2
Requires: Android 1.6 and up
QuickMark QR Code Reader is another reader that can read multiple different types of codes (Quick Code, QR Code, Data Matrix, EAN 8/13, UPCA, UPCE, Code39, and Code128) and is able to generate QR codes for many different things (apps, contacts, clipboard, location, etc.).
There are some aspects of QuickMark QR Code Reader that surpass both Barcode Scanner and QR Droid. For example, when scanning codes users can switch to a “barcode” mode where users can manually resize the scanning window to better fit different sized barcodes; QuickMark QR Code Reader can scan webpages for barcodes, in addition to reading barcodes through the camera and decoding barcodes from image files; QuickMark QR Code Reader can not only generate QR codes but also Quick codes. However, there are two main reasons why QuickMark QR Code Reader is bumped down to “Honorable Mention” as opposed to being in first or second place.
Firstly, while QuickMark QR Code Reader does well in differentiating between different types of barcodes (just like Barcode Scanner), it doesn’t provide as relevant options/results after a barcode has been scanned. For example, when scanning the UPC barcode for a product, QuickMark QR Code Reader allows me to do a general websearch of the UPC code. With this web search, I may or may not find what I am looking for. Barcode Scanner, on the other hand, gives me the option of doing this same web search but also allows be to do a more relevant product search which makes it easier to look for the product in question. As good as QuickMark QR Code Reader is – and it is a very good app – this issue knocks it below Barcode Scanner in my eyes.
Secondly, although QuickMark QR Code Reader may best QR Droid in some areas, it does not have the same “private” edition like QR Droid has; it does not give users the ability to use a version of the app that does not have access to their personal data. I find the private version of QR Droid to be quite attractive and definitely makes up for any shortcomings QR Droid may have verses QuickMark QR Coder Reader.
That said, though, even as third place QuickMark QR Coder Reader is an excellent barcode/QR code reading app. If you find yourself not liking Barcode Scanner or QR Droid, this app will do right by you.