Обработка qr-кодов вывода данных с помощью zxing в Android eclipse

В своем приложении я использую zxing в качестве библиотеки, и когда я сканирую QR-код, по умолчанию отображается экран с данными QR.

Вместо этого я хочу перейти к другому действию в зависимости от отсканированного QR-кода.

Кто-нибудь может мне помочь?

Это мой код в моей деятельности:

public void onActivityResult(int requestCode, int resultCode, Intent intent) 
{
    //super.onActivityResult(requestCode, resultCode, intent);
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
            String contenido = intent.getStringExtra("SCAN_RESULT");
            String formato = intent.getStringExtra("SCAN_RESULT_FORMAT");

            Intent i = new Intent(Qr_Reader.this,AnotherAcitvity.class);
            startActivity(i);

        } else if (resultCode == RESULT_CANCELED) {

        }
    }
}

person DVecino    schedule 14.06.2013    source источник


Ответы (1)


Попробуйте этот код из результата штрих-кода zxing:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case IntentIntegrator.REQUEST_CODE:
                IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode,
                        resultCode, data);
                if (scanResult == null) {
                    return;
                }
                final String result = scanResult.getContents();
                final String result1 = scanResult.getFormatName();
                if (result != null) {
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            txtScanResult.setText(result);
                            txtScanResultFormat.setText(result1);

                             Intent i = new Intent(Qr_Reader.this,AnotherAcitvity.class);
                             startActivity(i);
                        }
                    });
                }
                break;
            default:
        }
    }

РЕДАКТИРОВАТЬ:

Если вы хотите обойтись без использования IntetIntegrator, попробуйте этот код.

Я не пробовал этот способ, но я нашел ссылку, которая может вам помочь.

Link1

Link2

Надеюсь, это поможет вам.

person Maulik    schedule 14.06.2013
comment
Спасибо за ответ, но у меня нет класса IntentIntegrator или IntentResult. Я использую CaptureActivity из ZXing. Любая идея? - person DVecino; 14.06.2013
comment
Я наконец сделал это! Я использовал другую библиотеку, и с помощью вашего ответа (редактируя несколько вещей) это сработало. Спасибо, Мауилк. Я не могу дать вам репутацию, потому что у меня недостаточно уровня, извините - person DVecino; 16.06.2013
comment
Я проголосовал за ваш вопрос, потому что вы пытаетесь использовать zxing по-другому, и я также научился использовать его по-другому из вашего вопроса. Я хотел бы предложить вам сначала попытаться выяснить это в Google или Stactoverflow, и если вы все еще не получили правильного ответа, опубликуйте его здесь. - person Maulik; 17.06.2013
comment
Спасибо, я искал во многих сообщениях и не нашел то, что искал, поэтому я создал это. - person DVecino; 17.06.2013