Можно настроить ZXing в Android для обработки сохранения нескольких QR-кодов без перезагрузки камеры?

#android #android-intent #qr-code #zxing

#Android #android-намерение #qr-код #zxing

Вопрос:

Я успешно интегрировал QR-сканер ZXing. Что я делаю, так это повторяю сканирование после того, как пользователь закончил сканирование 1 QR-кода. Проблема, с которой я столкнулся, заключается в том, что ZXing очень медленно перезагружает камеру, если я выполняю многократное сканирование QR-кодов с помощью этого метода. Есть ли лучшие способы? Я смотрю на сохранение всех сканирований без перезагрузки камеры (выключение и включение).

Я только сканирую свои собственные настроенные QR-коды, поэтому мне не нужно обрабатывать другие форматы.

Сканирование

  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
        //..
        //Repeat scan for next QR code
        Intent i = new Intent("com.google.zxing.client.android.SCAN");
        i.putExtra("SCAN_MODE", "QR_CODE_MODE");
        startActivityForResult(i, 0);
    }
    else  {
        // Handle cancel
        //...
    }
}
  

Ответ №1:

ZXing не замедляет перезагрузку чего-либо — это время, затрачиваемое драйвером камеры на инициализацию камеры. Обойти это не так уж и сложно. Но вы можете просто не закрывать камеру и продолжать предварительный просмотр, если хотите.

Посмотрите режим массового сканирования приложения — он уже может сканировать без остановки, чтобы показать результаты.

Комментарии:

1. @SeanOwen Не могли бы вы рассказать нам, как использовать результаты режима массового сканирования из другого приложения?