165

アプリにバーコードスキャナーを追加する方法を探していました。例はありますか、またはこれを簡単に行うにはどうすればよいですか?

4

7 に答える 7

210

ZXingプロジェクトは、Androidのインテントメカニズムを介して、バーコードスキャンを統合したい他のアプリケーションから呼び出すことができるスタンドアロンのバーコードリーダーアプリケーションを提供します。

これを行う最も簡単な方法は、次のようSCAN Intentに、アプリケーションからZXingを呼び出すことです。

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でzxing3.2.1をセットアップするためのステップバイステップ

  1. 「 https://github.com/zxing/zxing」からzxing-master.zipをダウンロードします
  2. zxing-master.zipを解凍し、Eclipseを使用してzxing-masterに「android」プロジェクトをインポートします
  3. 「 http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/」からcore-3.2.1.jarをダウンロードします。
  4. 「android」プロジェクトに「libs」フォルダーを作成し、cor-3.2.1.jarをlibsフォルダーに貼り付けます
  5. プロジェクトをクリックします。「プロパティ」->「Javaコンパイラ」を選択して、レベルを1.7に変更します。次に、[Android]をクリックして[プロジェクトビルドターゲット]をandroid 4.4.2 +に変更します。これは、1.7を使用するにはAndroid4.4でコンパイルする必要があるためです。
  6. 「CameraConfigurationUtils.java」が「zxing-master/android / app / src / main / java / com / google / zxing / client / android /camera/」に存在しない場合。「zxing-master/android-core / src / main / java / com / google / zxing / client / android / camera /」からコピーして、プロジェクトに貼り付けることができます。
  7. プロジェクトをクリーンアップしてビルドします。プロジェクトで「switch--case」に関するエラーが表示された場合は、「if--else」に変更する必要があります。
  8. 完了しました。プロジェクトをクリーンアップしてビルドします。[プロパティ]>[Android]をクリックし、[ライブラリ]をクリックしてプロジェクトに使用できます。
于 2010-01-12T20:04:39.583 に答える
41

intent.putExtraの名前にパッケージ名を含める必要があることを説明するWebサイトを見つけるまで(今は再び見つけることができません)、コードの実装に問題がありました。

アプリケーションをプルアップしますが、バーコードを認識せず、から変更したときに認識されません。

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

intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");

それはうまくいきました。他の初心者のAndroidプログラマーのためのヒントです。

于 2010-11-04T05:47:28.330 に答える
23

提供されている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

IntentIntegrator.java

于 2010-10-19T02:52:58.260 に答える
11

コードに含め、ZXingライブラリが推奨するIntentIntegratorを使用しない場合は、次のポートのいくつかを使用できます。

私は最初のものを使用します、そしてそれは完璧に動作します!試してみるサンプルプロジェクトがあります。

于 2012-07-12T11:42:30.800 に答える
11

このようにZxingを使用するには、ユーザーがバーコードスキャナーアプリもインストールする必要がありますが、これは理想的ではありません。おそらく必要なのは、Zxingをアプリに直接バンドルすることです。

このライブラリを使用することを強くお勧めします:https ://github.com/dm77/barcodescanner

XzingまたはZbarを直接統合しようとすると、発生するすべてのクレイジーなビルドの問題が発生します。これらのライブラリは内部で使用されますが、非常に使いやすいAPIでラップされています。

于 2014-06-14T21:49:53.000 に答える
6

バーコード検出がGooglePlayサービスで利用できるようになりました。 セットアッププロセスのコードラボ。ここにAPIドキュメントサンプルプロジェクトがあります。

于 2015-08-22T14:10:30.257 に答える
3

このクイックスタートガイドhttp://shyyko.wordpress.com/2013/07/30/zxing-with-android-quick-start/と簡単なサンプルプロジェクトを使用して、IntentIntegratorなしでAndroidアプリをビルドできます。

于 2013-09-06T09:02:21.890 に答える