web-dev-qa-db-ja.com

QRコードと1Dバーコードをスキャンする方法をZXingしますか?

ZXingライブラリをアプリにインポートしました。putExtra関数をQRコードバーコードをスキャンに設定する方法を知っています。

INTENT = new Intent("com.google.zxing.client.Android.SCAN");
INTENT.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(INTENT, 0);

1Dバーコードをスキャンしたい場合:

INTENT = new Intent("com.google.zxing.client.Android.SCAN");
INTENT.putExtra("SCAN_MODE", "PRODUCT_MODE");
startActivityForResult(INTENT, 0);

しかし、アプリが両方をスキャンできるようにするにはどうすればよいですか? (1Dおよび2Dバーコード)。

ありがとう!マルコ

17
Marco Matarazzi

両方をスキャンしたいだけの場合(これら2つだけではありません):

インテントにSCAN_MODEを追加しないでください。これは、バーコードのタイプを特定のタイプに制限するためのオプションです。指定しないと、考えられるすべてのタイプがスキャンされます。

28
user658042

これらのコード行を実行するだけです。それはあなたが望むように私のために完全に働いています。

 Intent intent = new Intent("com.google.zxing.client.Android.SCAN");
              intent.setPackage("com.google.zxing.client.Android"); 
              //intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
              intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A,QR_CODE");
              startActivityForResult(intent, 0);
7
DJhon

「QR_CODE_MODE」の代わりに「SCAN_MODE」を使用する必要があります。

INTENT.putExtra("SCAN_MODE", "QR_CODE_MODE");

する必要があります

INTENT.putExtra("SCAN_MODE", "SCAN_MODE");
2
user2881122

IntentIntegrator を使用することをお勧めします。これは、Zxingプロジェクトにあるクラスであり、アプリの1つで使用しています。ファイルへのリンクを提供しました。スキャンコードをカプセル化し、シンプルなスキャン機能に最適です。 initializeScanメソッドはあなたが見たいところです。楽しい!

2
markS