Проблема интеграции ZXing через намерение - PullRequest
1 голос
/ 19 мая 2011

Ну, я пытаюсь реализовать интеграцию zxing с моим Android-приложением.В моем приложении есть MainActivity.В этой MainActivity я использую кнопку для выполнения первого блока кода ниже.Но каждый раз, когда выполняю первый блок кода и приложение считывает QR-код, я получаю в качестве resultCode значение RESULT_CANCELED во втором блоке.Второй блок выполняется, как только ZXing Activity открывается.Что я делаю не так?

Первый блок кода

Intent intent1 = new Intent("com.google.zxing.client.android.SCAN");
    intent1.setPackage("com.google.zxing.client.android");
    intent1.putExtra("SCAN_MODE", "ONE_D_MODE");
    startActivityForResult(intent1, 0);

Второй блок кода

public void onActivityResult(int requestCode, int resultCode, Intent intent2) {
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            String contents2 = intent2.getStringExtra("SCAN_RESULT");
            String format2 = intent2.getStringExtra("SCAN_RESULT_FORMAT");
            EditText assetMon1 = (EditText) findViewById(R.id.assetMon1);
            assetMon1.setText(contents2);
        } else if (resultCode == RESULT_CANCELED) {
            // Every time I receive this code
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 20 мая 2011

Следуйте образцу кода, предоставленному в проекте под android-integration.Просто вызовите методы этого класса, а не отлаживайте свою собственную версию.Я думаю, что использование requestCode 0, скорее всего, будет проблемой, но я предполагаю.Предполагается, что это своего рода уникальный идентификатор для запроса.Но 0 может использоваться чем-то другим, и вы действительно слышите ответ на что-то еще.

0 голосов
/ 19 мая 2011

У меня очень похожий код в моем приложении. Единственное существенное отличие состоит в том, что у меня вместо «ONE_D_MODE» «PRODUCT_MODE».

...