#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 Не могли бы вы рассказать нам, как использовать результаты режима массового сканирования из другого приложения?