Trang chủ Kiến thức lập trình Android scan QRCode và Barcode bằng barcodescanner – tích hợp kiểm tra...

Android scan QRCode và Barcode bằng barcodescanner – tích hợp kiểm tra mã vạch cho di động

582
0

Tích hợp tính năng scan QRcode, Barcode một cách cực kì đơn giản trong ứng dụng android nhờ vào thư viện barcodescanner là một giải pháp không hề tồi. Thư viện này thường được Mona Media sử dụng trong các dự án lập trình di động

Bản chất thì thư viện barcode scanner sử dụng core là thư viện zxing – một thư viện scan/encode mã QR/barcode cực kỳ khủng vậy nên bạn hoàn toàn yên tâm về khả năng đọc và độ chính xác. bên cạnh đó bạn có thể lựa chọn phiên bản sử dụng core là ZBar 1 thư viện khủng không kém zxing.

Bước 1: Thêm dependencies

compile 'me.dm7.barcodescanner:zxing:1.9.8'

Bước 2: Cấp quyền truy cập camera

Tất nhiên, ứng dụng đọc QR Code thì cần có camera để soi nên bạn thêm dòng này vào manifest

<uses-permission android:name="android.permission.CAMERA" />

Với target version >=23 bạn cần phải implement việc request permission runtime để truy cập camera.

Bước 3: Sử dụng ZXingScannerView

Tạo Activity và sử dụng custom view ZXingScannerView. bạn sử dụng view như là các view bình thường khác. có các custom attributes để config hiển thị của màn hình camera.

   <me.dm7.barcodescanner.zxing.ZXingScannerView
            android:id="@+id/scannerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:borderColor="#FFF"
            app:borderLength="24dp"
            app:borderWidth="4dp"
            app:laserColor="#00ff77"
            app:maskColor="@android:color/transparent"
            app:roundedCorner="false"
            app:squaredFinder="true"/>

Bước 4: Viết code java

public class SimpleScannerActivity extends Activity implements ZXingScannerView.ResultHandler {
    private ZXingScannerView mScannerView;

    @Override
    public void onCreate(Bundle state) {
        super.onCreate(state);
        setContentView(R.layout.scanner_activity);
        mScannerView = findViewById(R.id.scannerView);   // Programmatically initialize the scanner 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.getText()); // Prints scan results
        Log.v(TAG, rawResult.getBarcodeFormat().toString()); // Prints the scan format (qrcode, pdf417 etc.)

        // If you would like to resume scanning, call this method below:
        mScannerView.resumeCameraPreview(this);
    }
}

Khi có kết quả thì sẽ gọi call back vào method handleResult()

Nâng cao

Ngoài ra bạn có thể tùy chỉnh nâng cao như bật flash, autofocus, chỉ định camera …

// Toggle flash:
void setFlash(boolean);

// Toogle autofocus:
void setAutoFocus(boolean);

// Specify interested barcode formats:
void setFormats(List<BarcodeFormat> formats);

// Specify the cameraId to start with:
void startCamera(int cameraId);

Support formats

BarcodeFormat.UPC_A
BarcodeFormat.UPC_E
BarcodeFormat.EAN_13
BarcodeFormat.EAN_8
BarcodeFormat.RSS_14
BarcodeFormat.CODE_39
BarcodeFormat.CODE_93
BarcodeFormat.CODE_128
BarcodeFormat.ITF
BarcodeFormat.CODABAR
BarcodeFormat.QR_CODE
BarcodeFormat.DATA_MATRIX
BarcodeFormat.PDF_417
Chia sẻ
Bài trướcSQL Trigger là gì, sự khác biệt và cách thức xử dụng
Bài tiếp theoBoostrap là gì – Framework thiết kế website responsive phổ biến nhất
Tôi là một lập trình viên thiết kế website và sau này là cả IOS ( Android thì chỉ biết sơ sơ ) Tôi đã bắt đầu thực hiện dự án Freelancer đầu tay của mình vào năm 2009 khi tôi lần đầu đi làm. Và với những đánh giá tích cực của khách hàng ban đầu vì hỗ trợ tốt, hậu mãi tốt và tự chủ động tìm hiểu/update thêm tính năng cho khách hàng nên tôi đã nhận được nhiều hợp đồng hơn sau đó. Kết quả là vào năm 2011 tôi đã thành lập Mona Media với chỉ 2 nhân viên thời gian đầu. Tôi tự hào về kinh nghiệm, kiến thức và sự nhiệt thành của mình trong mỗi dự án của khách hàng. Mona Media lựa chọn phân khúc của sự hiệu quả, không sáo rỗng, không màu mè, chúng tôi chỉ tập trung mang lại những giá trị hoàn hảo cho khách hàng qua website/phần mềm.