2018年6月25日 星期一

ZXing 條碼掃描器


安裝ZX條碼器

 public void Menu_QRCODE_Click(View v) {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        if (getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size() == 0) {
            // 未安裝
            Toast.makeText(this, "請至 Play 商店安裝 ZXing 條碼掃描器", Toast.LENGTH_LONG).show();
            intent = new Intent(Intent.ACTION_VIEW,
                    Uri.parse("http://play.google.com/store/apps/details?id=com.google.zxing.client.android"));
            startActivity(intent);
        } else {
            //已安裝
            // SCAN_MODE, 可判別所有支援的條碼
            // QR_CODE_MODE, 只判別 QRCode
            // PRODUCT_MODE, UPC and EAN 碼
            // ONE_D_MODE, 1 維條碼
            intent.putExtra("SCAN_MODE", "SCAN_MODE");
            // 呼叫ZXing Scanner,完成動作後回傳 1 給 onActivityResult 的 requestCode 參數
            startActivityForResult(intent, 1);
        }
    }


// 接收 ZXing 掃描 QRCODE 後回傳來的結果
    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == 1) {
            if (resultCode == RESULT_OK) {
                Log.d("MenuActivity","ZXing 掃描 QRCODE 後回傳來的結果 進入OK");
                // ZXing回傳的內容
                final String contents = intent.getStringExtra("SCAN_RESULT");
                e_QRCODE.setText(contents);
            } else if (resultCode == RESULT_CANCELED) {
                Toast.makeText(this, "取消掃描", Toast.LENGTH_LONG).show();
            }
        }
    }

沒有留言:

張貼留言