0

私はこのウェブサイトから学びました:http: //damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/

Zxingの統合に関して2つの小さな問題があります:

  1. 私のアプリケーションの名前は「バーコードスキャナー」になりました
  2. 統合バーコードスキャナーを使用したいときにこのエラーが発生しました:java.lang.ClassNotFoundException : android.preference.set

しかし、以前にスマートフォンにインストールされていたバーコードスキャナーを使用することを選択した場合、エラーは発生しません。何かアイデアはありますか?

私のコードは:

マニフェスト:

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

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

    </activity>

アクティビティ :

    /* -- LISTENER CLICK SCAN PRODUCT -- */
View.OnClickListener bScanProduct = new View.OnClickListener() {
    public void onClick(View v) {
        LayoutInflater inflater = getLayoutInflater();
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.putExtra("SCAN_MODE", "PRODUCT_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");
            Log.w("SuggestionActivity", "Scan receved : "+contents+" format : "+format);
            // Handle successful scan
        } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
            Log.w("SuggestionActivity", "Cancel scan");
        }
    }
}

/*----------------------------------*/

プロジェクト「CaptureActivity」がライブラリとして設定され、私のプロジェクトに含まれています。また、core.jarは「外部JAR」としても含まれています。

4

1 に答える 1

1

このブログ投稿をフォローしないでください。ここで強調表示している理由から、アプリをコピーして貼り付ける方法を示していますが、これは強くお勧めしません。意図的であろうとなかろうと、人々は同じアイコン、名前、マニフェスト設定を使用するクローンアプリを作成します。これは、Intentによる実際のバーコードスキャナーとの統合を妨げるアプリです。

自分のアプリでコードの一部を再利用することは、自分が何をしているのかを知っていれば問題ありませんが、名前に驚いた場合は、そうではないと思います。

実際、編集では、によって統合しようとしていることを示していますIntent。これははるかに簡単で、core/またはandroid/コードを必要としません。

正しい統合手順は、プロジェクト自体にあります:http ://code.google.com/p/zxing/wiki/ScanningViaIntent

バーコードスキャナーのソースコードを責任を持って再利用するためにこれがどのように機能するかについて十分に確信が持てない場合は、この方法で統合してください。

于 2012-10-24T13:53:29.113 に答える