The ZXing project provides a standalone barcode reader application which — via Android s intent mechanism — can be called by other applications who wish to integrate barcode scanning.
The easiest way to do this is to call the ZXing SCAN
Intent
from your application, like this:
public Button.OnClickListener mScan = new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
};
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
Pressing the button linked to mScan
would launch directly into the ZXing barcode scanner screen (or crash if ZXing isn t installed). Once a barcode has been recognised, you ll receive the result in your Activity
, here in the contents
variable.
To avoid the crashing and simplify things for you, ZXing have provided a utility class which you could integrate into your application to make the installation of ZXing smoother, by redirecting the user to the Android Market if they don t have it installed already.
Finally, if you want to integrate barcode scanning directly into your application without relying on having the separate ZXing application installed, well then it s an open source project and you can do so! :)
Edit: Somebody edited this guide into this answer (it sounds a bit odd, I can t vouch as to its accuracy, and I m not sure why they re using Eclipse in 2015):
Step by step to setup zxing 3.2.1 in eclipse
- Download zxing-master.zip from "https://github.com/zxing/zxing"
- Unzip zxing-master.zip, Use eclipse to import "android" project in zxing-master
- Download core-3.2.1.jar from "http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/"
- Create "libs" folder in "android" project and paste cor-3.2.1.jar into the libs folder
- Click on project: choose "properties" -> "Java Compiler" to change level to 1.7. Then click on "Android" change "Project build target" to android 4.4.2+, because using 1.7 requires compiling with Android 4.4
- If "CameraConfigurationUtils.java" don t exist in "zxing-master/android/app/src/main/java/com/google/zxing/client/android/camera/". You can copy it from "zxing-master/android-core/src/main/java/com/google/zxing/client/android/camera/" and paste to your project.
- Clean and build project. If your project show error about "switch - case", you should change them to "if - else".
- Completed. Clean and build project. You can click on "Proprties" > "Android" > click on "Is Libraries" to use for your project.