上方廣告

上方連結組

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/

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

2 則留言:

  1. To begin half in} free on line casino video games on-line, simply click on in your chosen recreation and it'll then load up in your browser. Alternatively, head to an online on line casino and select the “Play for Free” choice, which type of} always provided. You’ll discover that there’s a information on the way to|tips on how to} play inside every on line casino recreation, so 토토사이트 learn this to be taught the precise intricacies of a specific recreation.

    回覆刪除