CN1Lib for using ZBar scanning in Android apps.
C++ Java Objective-C HTML Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
dist
lib
native
nbproject
src
.gitignore converted ZBar lib from andlib to aar file Mar 14, 2016
LICENSE
README.md
Stubber.jar
ZBarScannerLibrary.aar
build.xml
codenameone_library.properties
codenameone_library_appended.properties Workaround for an Android build regression Feb 8, 2017
codenameone_library_required.properties
manifest.mf
manifest.properties

README.md

QRScanner

CN1Lib for using ZBar scanning in Android apps.

The built in Codename One implementation of CodeScanner works well on iOS but has some issues on Android.
This module works around those issues by embedding ZBar into the Android build.

This removes the reliance on an external scanning app to be installed and seems to scan faster.

It does add several megabytes to the final .apk file size.

How to use

Installation

  1. Install the cn1-codescan library into your project.
  2. Build or download the QRScanner.cn1lib file.
  3. Put the file the libs folder of your project.
  4. Right-click on your project and choose Refresh Libs

Example Code

Basically use QRScanner instead of CodeScanner.

QRScanner.scanQRCode(new ScanResult() {
    public void scanCompleted(String contents, String formatName, byte[] rawBytes) {
        Dialog.show("Completed", contents, "OK", null);
    }
    public void scanCanceled() {
        Dialog.show("Cancelled", "Scan Cancelled", "OK", null);
    }
    public void scanError(int errorCode, String message) {
        Dialog.show("Error", message, "OK", null);
    }
});

Converting an existing app

It should pretty much be a drop in replacement for CodeScanner. If you need to detect if code scanning is supported on the current platform then you need to keep the original check do not change this line to QRScanner:

if (CodeScanner.getInstance() != null) {
    QRScanner.scanQRCode(myScanResult);
} else {
    Dialog.show("Not Supported","QR Code Scanning is not available on this device","OK",null);
}