0

zxingバーコードスキャナーを使用した私のphonegapアプリ。zxingからデモアプリ(barcodescanner)をインストールします。さて、私のphonegapアプリで、バーコードスキャナーを呼び出すと、Androidは、このアクションを実行するアプリ(私のアプリとzxingバーコードスキャナー)を選択するように要求します。これを回避する方法は?私はアンドロイドが私のユーザーにこのように尋ねたくありません

4

2 に答える 2

0

送信した を呼び出しsetPackage()て、Intent可能なアプリケーションを 1 つだけに送信できます。ここでは に設定し"com.google.zxing.client.android"ます。

于 2012-07-04T07:45:54.270 に答える
0

コードを変更していない場合、デフォルトで Zxing は次の目的で登録します。

<action android:name="com.phonegap.plugins.barcodescanner.SCAN" />

次の変更を行うことで、これを変更してアプリケーションに固有のものにすることができます。

// in BarcodeScanner.java plugin file

public void scan() {
    // changed to custom intent
    Intent intentScan = new Intent("com.dhaval.phonegap.plugins.barcodescanner.SCAN");
    intentScan.addCategory(Intent.CATEGORY_DEFAULT);

    this.ctx.startActivityForResult((Plugin) this, intentScan, REQUEST_CODE);
}


public void encode(String type, String data) {
    // changed to custom intent
    Intent intentEncode = new Intent("com.dhaval.phonegap.plugins.barcodescanner.ENCODE");
    intentEncode.putExtra("ENCODE_TYPE", type);
    intentEncode.putExtra("ENCODE_DATA", data);

    this.ctx.startActivity(intentEncode);
}

アプリケーションの AndroidManifest.xml ファイルで、インテント フィルター文字列を上記の BarcodeScanner.java ファイルで使用されているカスタム文字列に変更します。

<activity android:name="com.google.zxing.client.android.CaptureActivity"
            android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:windowSoftInputMode="stateAlwaysHidden">
            <intent-filter>
                <action android:name="com.dhaval.phonegap.plugins.barcodescanner.SCAN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity android:name="com.google.zxing.client.android.encode.EncodeActivity"
            android:label="@string/share_name">
            <intent-filter>
                <action android:name="com.dhaval.phonegap.plugins.barcodescanner.ENCODE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
于 2012-07-04T04:41:50.007 に答える