アプリにバーコードスキャナーを追加する方法を探しています。例はありますか、これを簡単に行うにはどうすればよいですか?
ZXingプロジェクトは、Androidのインテントメカニズムを介して、バーコードスキャンを統合したい他のアプリケーションから呼び出すことができるスタンドアロンのバーコードリーダーアプリケーションを提供します。
これを行う最も簡単な方法は、アプリケーションからZXing SCAN
Intent
を呼び出すことです like this :
public Button.OnClickListener mScan = new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.google.zxing.client.Android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
};
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
mScan
にリンクされたボタンを押すと、ZXingバーコードスキャナー画面が直接起動します(または、ZXingがインストールされていない場合はクラッシュします)。バーコードが認識されると、Activity
、ここではcontents
変数で結果を受け取ります。
クラッシュを回避し、物事を単純化するために、ZXingには ユーティリティクラスを提供 があります。これをユーザーにAndroidにリダイレクトすることで、アプリケーションに統合してZXingのインストールをスムーズにできます。 _まだインストールされていない場合は販売します。
最後に、別個のZXingアプリケーションをインストールせずに、バーコードスキャンをアプリケーションに直接統合したい場合、それはオープンソースプロジェクトであり、そうすることができます! :)
編集:誰かがこのガイドをこの答えに編集しました(少し奇妙に聞こえますが、その正確性を保証することはできません。 2015年にEclipseを使用している理由):
Eclipseでzxing 3.2.1を設定するための手順
Intent.putExtraの名前にパッケージ名を含める必要があることを説明するWebサイトが見つかるまで、コードの実装に問題がありました(今はもう見つかりません)。
それはアプリケーションをプルアップしますが、バーコードを認識せず、いつからそれを変更しました。
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
に
intent.putExtra("com.google.zxing.client.Android.SCAN.SCAN_MODE", "QR_CODE_MODE");
うまくいきました。他の初心者Androidプログラマ向けのヒントです。
提供されているIntentInegratorを使用することをお勧めします。バーコードスキャナーがない場合は、インストールするようユーザーに促すことができます。また、メッセージをカスタマイズすることもできます。 IntentIntegrator.REQUEST_CODE定数は、上記のifブロックで確認するonActivityResultのリクエストコードの値を保持します。
IntentIntegrator intentIntegrator = new IntentIntegrator(this); // where this is activity
intentIntegrator.initiateScan(IntentIntegrator.ALL_CODE_TYPES); // or QR_CODE_TYPES if you need to scan QR
ZXingライブラリが推奨するIntentIntegratorを使用せずにコードに含める場合は、次のポートのいくつかを使用できます。
私は最初のものを使用し、それは完全に動作します!試用するサンプルプロジェクトがあります。
この方法でZxingを使用するには、ユーザーがバーコードスキャナーアプリもインストールする必要がありますが、これは理想的ではありません。おそらく必要なのは、Zxingをアプリに直接バンドルすることです。
このライブラリの使用を強くお勧めします: https://github.com/dm77/barcodescanner
XzingまたはZbarを直接統合しようとすると、これから発生するすべてのクレイジーなビルドの問題が発生します。これらのライブラリは隠れて使用されますが、非常にシンプルなAPIでラップされています。
バーコード検出が Google Play開発者サービス で利用可能になりました。 コードラボ セットアッププロセスの場合、ここに api docs 、および サンプルプロジェクト があります。
このクイックスタートガイドを使用できます http://shyyko.wordpress.com/2013/07/30/zxing-with-Android-quick-start/ Android IntentIntegratorのないアプリ。