上方廣告

上方連結組

2013年8月9日 星期五

如何在 Android 中解析 QRCode 或 BarCode

在 android 中要解析 QRCode 其實很簡單,簡單到連 library 都不需要裝 XD.
簡單的來說,就是直接開啟 QRCode 的掃描程式,然後等掃描程式將結果解析完後傳回來就好囉!

那麼..... 如果裝置上沒安裝掃描程式怎麼辦?

那就..... 直接叫他去下載不就解決了 XD

我這邊使用的是 google 的 zxing 掃描程式,雖然說是 google 出的,但 android 手機並沒有預設安裝。
Button btnShoot = (Button) this.findViewById(R.id.btnShoot);
btnShoot.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View v) {
    try {
      Intent intent = new Intent("com.google.zxing.client.android.SCAN");
      intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
      intent.putExtra("SAVE_HISTORY", false);
      startActivityForResult(intent, 0);
    } catch (Exception ex) {
      // 如果發生錯誤,則表示應該還未安裝 ZXing 程式,幫他導到 market 下載吧
      Uri marketUri = Uri.parse("market://details?id=com.google.zxing.client.android");
      Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri);
      startActivity(marketIntent);
    }
  }
});




然後在 onActivityResult 事件中等結果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if (requestCode == 0) {
    if (resultCode == RESULT_OK) {
      String contents = data.getStringExtra("SCAN_RESULT");
      Toast.makeText(this, contents, Toast.LENGTH_SHORT);
    } else if (resultCode == RESULT_CANCELED) {
      // Handle cancel
    }
  }
}
有興趣的可以直接到 zxing 的官方網站去研究研究
https://code.google.com/p/zxing/

我一開始是看了這篇
看完後害我嚇壞了。
居然還要搞一堆有的沒的 ....
想嚇唬誰呀~

1 則留言: