0

zxing バーコード スキャナーをアプリに統合しようとしています。すべてが計画どおりに進みました。scann をクリックすると、統合型か外部型かを選択するように求められます。誰がこの質問を避けることができますか?

プロジェクトへ: ライブラリとしてインポートせず、すべての Java コード ファイルをプロジェクトに配置しました。これは私たちが持っている要件の1つでした。アプリが外部リソースに依存することは望ましくありません (それらが ide 内部のみであっても)。

また、zxing バーコード スキャナーを搭載していない Android デバイスでもテストしました。質問はありません。

どうすればこの質問に合格し、内部バージョンに問題を指摘できますか?

これを呼び出すコードは次のとおりです。

button2.setOnClickListener(new View.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);
        }
    });

com.google.zxing.client.android.SCAN クラスも見つけようとしましたが、見つかりませんでした。しかし、面白いことに、それは機能します。

マニフェストの一部は次のとおりです。

    <activity android:name="com.google.zxing.client.android.CaptureActivity"
       android:screenOrientation="landscape"
       android:configChanges="orientation|keyboardHidden"
       android:theme="@android:style/Theme"
       android:windowSoftInputMode="stateAlwaysHidden">
       <intent-filter>
          <action android:name="android.intent.action.MAIN"/>
          <category android:name="android.intent.category.DEFAULT"/>
       </intent-filter>
       <intent-filter>
          <action android:name="com.google.zxing.client.android.SCAN"/>
          <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>

統合コードで、私はこれに従いました:

http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/

何を間違えたのかよくわかりません。^^

4

1 に答える 1

7

これを呼び出すコードは次のとおりです

のアクションでアクティビティを開始しようとしていcom.google.zxing.client.android.SCANます。どのデバイスも、標準のバーコード スキャナー アプリケーションを含め、それらをいくつでも持つことができます。

したがって、代わりに:

Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 

あなたが使用する必要があります:

Intent intent = new Intent(this, com.google.zxing.client.android.CaptureActivity.class); 

また、あなたはバーコード スキャナーではないため、マニフェスト<intent-filter>から要素を削除する必要があります。CaptureActivity

于 2012-05-12T23:24:49.647 に答える