试了试Android二维码开始,用了下ZXing,也用了下Zbar。这里是基于Barcode Scanner,在里面已经把代码都封装好了,只需要直接调用即可。
二维码(Quick Response Code),又称二维条码,它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形,是所有信息数据的一把钥匙。在现代商业活动中,可实现的应用十分广泛,如:产品防伪/溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子商务应用、车辆管理、信息传递等。如今智能手机扫一扫(简称313)功能的应用使得二维码更加普遍,随着国内物联网产业的蓬勃发展,更多的二维码技术应用解决方案被开发,二维码成为移动互联网入口真正成为现实。
Zxing是Google提供的关于条码(一维码、二维码)的解析工具,提供了二维码的生成与解析的方法。
ZXing ("zebra crossing") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages.
项目首页: https://github.com/zxing/zxing
Android library projects that provides easy to use and extensible Barcode Scanner views based on ZXing and ZBar.
简单地来说,就是它封装了ZXing和ZBar,官方在其网站上给了示例:
步骤大致如下:
1.添加库到build.gradle
compile 'me.dm7.barcodescanner:zbar:1.5'
2.添加CAMERA权限
<uses-permission android:name="android.permission.CAMERA" />
3.代码
public class SimpleScannerActivity extends Activity implements ZBarScannerView.ResultHandler {
private ZBarScannerView mScannerView;
@Override
public void onCreate(Bundle state) {
super.onCreate(state);
mScannerView = new ZBarScannerView(this); // Programmatically initialize the scanner view
setContentView(mScannerView); // Set the scanner view as the content view
}
@Override
public void onResume() {
super.onResume();
mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
mScannerView.startCamera(); // Start camera on resume
}
@Override
public void onPause() {
super.onPause();
mScannerView.stopCamera(); // Stop camera on pause
}
@Override
public void handleResult(Result rawResult) {
// Do something with the result here
Log.v(TAG, rawResult.getContents()); // Prints scan results
Log.v(TAG, rawResult.getBarcodeFormat().getName()); // Prints the scan format (qrcode, pdf417 etc.)
}
}
当然我们也添加添加一个Intent
private void startScanner() {
Intent startScanner = new Intent(this, SimpleScannerActivity.class);
startActivity(startScanner);
}
围观我的Github Idea墙, 也许,你会遇到心仪的项目