THESIS | [J2ME ] Mobile Phone Barcode Reader (internal camera)

Brief Description

A one year duration thesis. The main goal was to make a barcode scanner utilizing the inbuilt camera.

There were many ways in implementing this feature. The main idea i have decided on was as a stock management tool. Where home users to medium sized business such as those on ebay can use this tool to update the database in their computer automatically.

Basically the user just need to capture the barcode on the product they are going to ship out or is sold and it will automatically update the database, more examples will be such as defect or a new product or if user wants to edit details of a certain product.

This software is made with J2ME(JAVA) and runs on s60 and s40s. Currently trying to improve recognition on the s40 which has bad resolution and low memory.


The main program is based on Batoo (Barcode tool kit) by Robert Adelmann,


The Mobile phone has evolved from being a simple communication device to become a multipurpose device with advanced features such as camera device, video capabilities, and mp3 player. Using the internal Camera Device we will implement the Barcode Scanner.

This research is not intended to replace nor compete with the laser barcode scanners but instead to introduce a different variant of usage of the barcode and the camera device.

A Mobile phone Barcode scanner, although slower in recognition speed provides better mobility, flexibility and simplicity. Targeting home users and home-based online business owners, this technology provides a better solution as all they need is to install a small application into their java enabled mobile phones.

The scanner, in the form of a J2ME midlet in the mobile phone scans only EAN13 Barcodes but could be easily adapted to scan other barcodes. Tested only on NOKIA 6280, N70, N73,and Nav.6110. The scanner will first convert the coloured image to black and white which then employs the multi-scan line algorithm scanning with horizontal lines from top to bottom. It also applies the majority-voting system, where inaccuracies due to dirt or reflections are compensated by 2 or more correct identifications on other lines. The number will then be processed to check the format of the code. It also tries to repair the code by making an erudite guess. The scanner employs the Bluetooth and GPRS as its communication platform with the pc server.

Progress report 1 (Barcode Information)

The abstract

Mobile phone has evolved from being a simple communication device to become a
multipurpose device with extra features like camera device, video capabilities, and mp3
player. Having all this extra features we are able to introduce a barcode scanner to this
already feature rich device. Although laser barcode scanners are available, mobile phones
scanners provides better mobility, flexibility and simplicity. We can also introduce this
technology to home users, as all they need is to install a small application into their camera,
and java enabled mobile phones.

This paper will discuss on the common EAN-13 barcode in detail and briefly on some
algorithms used to retrieve the barcode data from the image captured from the internal
camera device. Based on these theoretical discussions a brief solution proposal will be

A brief project plan is described with a list of milestones and expected completion dates. This
should form a rough time management guide to ensure that the thesis be completed by the
required time.

The software will capture the image and convert it to the number value.

Then request via bluetooth for the list of options, which is saved in the computer in XML format.
The list will be something like


This list will be display on the mobile for the user to select what it wants to do with the barcode they have captured.

After selecting this option the mobile phone will then send the barcode with the options in the form:


1 meaning sold.

The server on the computer will receive this data and output it to an XML output file.

The reason i have decided this is to enable a separation between the server and the database handling software. Splitting the software on the pc as SERVER and Database Application will enable development of these entities to be done without interfering or dependent on each other. The database application can be made of various platforms or technology, as long as it can read the XML file (which basically just a formatted text file)

Initially i decided to use FLASH as the user interface but writing to files on flash requires PHP which requires apache server. Which will be troublesome for a user to setup.

Trying to target as large scope of users as possible i wanted an easier setup kind of interface. Trying to make sure it will work on macintosh as well as a pc platform i had to rule out c++.

leaving me with Java or Excel(assuming user has excel on mac)

I have Finally decided to go with FLASH using its internal database system known as
Local Shared Objects. Is it still in the finalizing process but u can have a preview of it in
the poster above.

This program is to be able to run on s40s and s60 and currently is only being tested on NOKIA & Sony Erricsson phones.

Before using the source codes read through the Thesis report first.
Progress report
Thesis Report
Source Codes