2014年2月25日 星期二

利用ZXing讀取QRCode




使用之前,要先裝ZXing的BarcodeScanner.apk

Scan:

  public void scan_QRCode(){
//用Intent啟用條碼掃描器
Intent i = new Intent("com.google.zxing.client.android.SCAN");
i.putExtra("SCAN_MODE", "QR_CODE_MODE"); //設定只判斷QR Code
try {
//開啟掃描器APP
startActivityForResult(i, 1); //呼叫完ZXing,完成動作後回傳1
} catch (Exception e) {
// TODO: handle exception
Intent googleplay = new Intent(Intent.ACTION_VIEW,Uri.parse("market://details?           id=com.google.zxing.client.android&hl=zh_TW"));
startActivity(googleplay);
}
}


onActivityResult接收:

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);

if( requestCode == 1){
if(resultCode == RESULT_OK){
//ZXing回傳的內容
String result = data.getExtras().getString("SCAN_RESULT");
Log.d("Show", result);
}else if(resultCode == RESULT_CANCELED){
//當還沒完成動作時,使用者倒退回上一步會判定為cancel
}
}

}

參考:
http://blog.johnsonlu.org/android%E9%80%8F%E9%81%8Ezxing%E8%AE%80%E5%8F%96barcode%E5%92%8Cqrcode/
http://elviselle.blogspot.tw/2013/06/android-app-qr-code.html