Проблема с использованием Zxing через намерение, если установлены очки Google - PullRequest
4 голосов
/ 08 ноября 2011

Я использую следующий код для вызова приложений сканера штрих-кода из 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 goggles. Я не могу получить желаемый результат назад. Это ломает мое приложение.

Есть ли способ, которым я могу предотвратить это?

Ответы [ 2 ]

6 голосов
/ 08 ноября 2011

Да.позвоните Intent.setPackage() со значением "com.google.zxing.client.android".Это заставит его принимать только ответ от сканера штрих-кода.

Обратите внимание, однако, что это сделает невозможным отвечать другие приложения, такие как сканер штрих-кода +.

0 голосов
/ 08 ноября 2011

лучше интегрировать сканер штрих-кода в ваше приложение.Zxing - это открытый исходный код, вы можете скачать его с здесь .А для Интеграции, пожалуйста, обратитесь к этому: http://www.falatic.com/index.php/12/building-zxing-for-android-part-3-using-eclipse. Я думаю, что это решит вашу проблему.

...