0

zxing バーコード スキャナーを統合した Android アプリケーションがあります。正常に動作しますが、問題が 1 つだけあります。別のバーコード スキャナーがあるため、アプリケーションがバーコード スキャナーを呼び出すと、常にアプリケーションを選択するように求められます。

アプリケーションでzxingを強制的に開きたいだけです。

解決策はありますか?

4

2 に答える 2

2

Zxing バーコード スキャナーをどのように呼びますか? アプリに統合した場合、intentPicker を使用してユーザーに選択させるべきではありません。直接呼び出すことができるはずです。ただし、そうでない場合は、次のようなことができます。

Intent zxing = getZxingIntent(this);
zxing.putExtra( "com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE"); 
startActivityForResult(zxing, 0);

ZxingIntent を取得するメソッド:

public static Intent getZxingIntent(Context context) {
    Intent zxingIntent = new Intent("com.google.zxing.client.android.SCAN");
    final PackageManager pm = context.getPackageManager();
    List<ResolveInfo> activityList = pm.queryIntentActivities(zxingIntent,
            0);
    for (int i = 0; i < activityList.size(); i++) {
        ResolveInfo app = activityList.get(i);
        if (app.activityInfo.name.contains("zxing")) {
            zxingIntent.setClassName(app.activityInfo.packageName,
                    app.activityInfo.name);
            return zxingIntent;
        }
    }
    return zxingIntent;
}

編集: この質問を参照すると、Zxing インテントを送信するとバーコード スキャナーが検索されるため、別のバーコード スキャナーがある場合はピッカーが作成されます。Zxing がデバイスで使用できない場合は、使用できません。ので、こちらもチェックしておきましょう。とにかく、上記で提供した切り取りは、デバイスで Zxing が利用可能かどうかを確認するために機能するはずです。(ただし、テストする機会がなかったので、少し変更する必要があるかもしれません。)

于 2013-07-29T06:39:04.383 に答える
0

あなたはこれを試すことができます

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.setPackage(getPackageName());
            intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
            startActivityForResult(intent, 0);
于 2014-01-29T08:27:02.450 に答える