簡單的來說,就是直接開啟 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/
我一開始是看了這篇 ,
看完後害我嚇壞了。
居然還要搞一堆有的沒的 ....
想嚇唬誰呀~
讚 !!!
回覆刪除