Android透過ZXing讀取BarCode和QRCode[完全不用自己寫~呼叫別人掃描在讀取結果即可]
Android透過ZXing讀取BarCode和QRCode[完全不用自己寫~呼叫別人掃描在讀取結果即可]
資料來源:http://blog.johnsonlu.org/android%E9%80%8F%E9%81%8Ezxing%E8%AE%80%E5%8F%96barcode%E5%92%8Cqrcode/
step01:
Intent intent = new Intent(“com.google.zxing.client.android.SCAN”);
if(getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size() == 0) {
//未安裝
}
step02:
//開啟QRcode Scanner
private OnClickListener qrcode_scanner = new OnClickListener(){
public void onClick(View v) {
Intent intent = new Intent(“com.google.zxing.client.android.SCAN”);
//選擇SCAN_MODE
//只判斷QRCode
intent.putExtra(“SCAN_MODE”, “QR_CODE_MODE”);
//只判斷二維條碼
intent.putExtra(“SCAN_MODE”, “PRODUCT_MODE”);
//支援的調碼都可以判斷
intent.putExtra(“SCAN_MODE”,”SCAN_MODE”);
//呼叫ZXing Scanner,完成動作後回傳1
startActivityForResult(intent, 1);
}
};
step03:
//startActivityForResult會將值傳回到onActivityResult
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
//requestCode在startActivityForResult傳入參數時決定的,如果成功的話會傳回相同的值
if (requestCode == 1) {
//成功回傳值
if (resultCode == RESULT_OK) {
//ZXing回傳的內容
String contents = intent.getStringExtra(“SCAN_RESULT”);
//ZXing回傳的格式
String format = intent.getStringExtra(“SCAN_RESULT_FORMAT”);
//做其他處理
} else if (resultCode == RESULT_CANCELED) {
//當還沒完成動作時,使用者倒退回上一步會判定為cancel
}
}
}