4

次のコードを使用して、Zing からバーコード スキャナー アプリを呼び出しています

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
        }
    }
}

問題は、バーコード スキャナー アプリがインストールされておらず、ユーザーが Google ゴーグルなどの他のスキャン アプリを使用している場合、目的の結果が得られないことです。これにより、アプリケーションが壊れます。

これを防ぐ方法はありますか??

4

2 に答える 2

6

はい。Intent.setPackage()値「com.google.zxing.client.android」で呼び出します。これにより、バーコード スキャナーからの応答のみを受け入れるようになります。

ただし、これにより、Barcode Scanner+ などの他のアプリが応答できなくなることに注意してください。

于 2011-11-08T12:36:19.977 に答える