วิธีทำ ScanBarcode, QR Code ด้วย ZXingScanner (Android Studio) : webapponsite

วิธีทำ ScanBarcode, QR Code ด้วย ZXingScanner (Android Studio)

ScanBarcode, QR Code ด้วย ZXingScanner (Android Studio)

ในบทความโปรแกรมนี้เราจะอธิบายถึงการนำ Library ZXingScanner มาใช้งานด้าน ScanBarcode หรือ QR Code  ซึงมีอยู่ 2 วิธีในการเรียกใช้ Library ZXingScanner คือ


วิธีที่1 เรียกแบบ com.google.zxing.client.android.SCAN แต่เราจำเป็นต้องติดตั้ง App zxingscanner ก่อนถึงจะเรียกใช้งานได้

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
startActivityForResult(intent, 0);

 

วิธีที่2 เรียกโดยใช้ library ZXingScanner จากโปรเจ็คของเราเอง ซึ่งเราจะขอยกตัวอย่างวิธีนี้ตามขั้นตอนด้านล่าง


STEP 1 : เตรียมโปรเจ็ค ใน Android Studio

STEP 2 : Updating build.gradle(Module:app) file ใน dependencies{}  ระดับ APP
Library ZXingScanner

 

STEP 4 : เปิดสิทธิ์ให้อุปกรณ์สามารถเปิดกล้องได้


 

STEP 5 : สร้าง ScanActivity.xml



 

STEP 6 : สร้างไฟล์ ScanActivity.java

public class ScanActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {
    private ZXingScannerView mScannerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mScannerView = new ZXingScannerView(this);   // Programmatically initialize the scanner view
        setContentView(mScannerView);
    }
    @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.)
        Intent result = new Intent();
        result.putExtra("SCAN_RESULT", rawResult.getText());
        result.putExtra("SCAN_RESULT_FORMAT", rawResult.getBarcodeFormat().toString());
        setResult(Activity.RESULT_OK, result);
        finish();
        onBackPressed();
    }
}

 

STEP 7 : การเรียกใช้งาน สมมุติเราเรียกใช้งานที่หน้า Main_activity.java

   Intent intents = new Intent(Main_activity.this,ScanActivity.class);
   startActivityForResult(intents, 0);
    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == 0) {
            if (resultCode == RESULT_OK) {
                barcode = intent.getStringExtra("SCAN_RESULT");
                Toast.makeText(this,barcode,Toast.LENGTH_LONG).show();
            }
        }
    }

เพียงเท่านี้เราก็สามารถใช้งาน Library ZXingScanner ในการ Scanbarcode หรือ Qrcode ได้แล้ว
ทางเราหวังว่าบทความนี้จะเป็นประโยชน์ต่อคุณไม่มากก็น้อย