Android Vision Barcode API – читать пользовательский QR-код с двоичными данными

Я использую com.google.android.gms.vision.barcode.BarcodeDetector , чтобы читать QR-коды. Проблема заключается в том, что эти коды несут исходные двоичные данные; Нет телефонных номеров, нет URL-адресов, нет геотомов … Я не могу изменить эти QR-коды, потому что они создаются в другом приложении.

Когда я сканирую эти QR-коды с помощью Android Barcode API, полученный объект Barcode не позволяет мне получить доступ к необработанным данным, хотя он должен это знать!

Все, что я получаю, это сообщение "Unknown encoding" как в свойствах rawValue и displayValue .

Наличие свойства byte[] вместо двух свойств String имеет больше смысла, поскольку QR-коды могут содержать общие данные.

Я не вижу смысла скрывать исходный массив байтов данных от разработчиков. Могу ли я каким-то образом расширить класс BarcodeDetector или класс Barcode чтобы получить то, что мне нужно?

Редактировать:

Это абсолютно корректный QR-код, который не может быть прочитан Vision API, хотя он содержит 1024 байта данных:

Введите описание изображения здесь


QR-коды – необработанные двоичные данные связаны, но это не решает мою проблему.

Я думаю, вам нужно написать часть реализации самостоятельно. Поскольку я ясно вижу в API, что rawData удерживается String, который просто не гарантирует целостность вашего двоичного типа данных.

Я напишу свой собственный BarcodeDetector со своим собственным объектом BarCode с байтом [] в качестве типа данных для rawData, исходящего из QR-кода и метода override detect (), чтобы назначить rawData моей реализации BarCode. Поскольку ваш случай очень специфичен к требованию, вы не должны стесняться писать свою собственную реализацию. Может быть, поделиться им и на github для других тоже.

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

Intereting Posts
Должен ли я беспокоиться о сообщениях консоли консоли DDMS «Не удается привязать к локальному nnnn для отладчика»? Кнопки «Сделать» имеют одинаковую ширину в макете Мышь (или касание) события на холсте вызывает выбор с помощью HTML5, Phonegap и Android Google Play Services делает apk слишком большим Ionic android build Error – Не удалось найти переменную окружения ANDROID_HOME WebView в CoordinatorLayout с CollapsingToolbarLayout PopupWindow в андроиде У OkHttpClient максимальное количество попыток Как я могу использовать layout_weight в представлении элементов RecyclerView или ListView, чтобы элементы с равной высотой заполняли доступное пространство на экране? Android – setListAdapter () + notifyDataSetChanged () уточнение Ошибка в программе Android NDK не может найти Как изменить положение пунктов меню на панели действий Как установить GUI-менеджер SDK для Android без установки Android Studio Получить текущий адрес местоположения для приложения для Android Android TextView и перенос текста