Vision api не обнаруживает QR-код на некоторых устройствах

Я использую Vision API для обнаружения QR-кодов. Он хорошо работает на устройстве Samsung, но не на устройстве LG. Оба устройства работают на версии 6.0.1, и нет ошибок. Любой совет?

1 ответ

Вот пример Zxing-Library и Vision API, надеюсь, он вам поможет.

База примеров проектов на Zxing-Library

Zxing Code Sample1 или

Zxing Code Sample2

В то время как Vision API для QR Bar Code попробуйте это

Vision API Code Sample1 или

Vision API Code Sample2 или

Vision API Code Sample3

Я столкнулся с той же проблемой, что QR не обнаруживается на устройствах Redmi и Infinix, вот мое решение:

Версия библиотеки Zxing

implementation 'com.google.zxing:core:3.4.0'

Просто передайте растровое изображение в эту функцию, и она вернет строковое значение:

public static String getQRDataFromBitmap(Bitmap bitmap) {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
    int[] intArray = new int[bitmap.getWidth() * bitmap.getHeight()];
    bitmap.getPixels(intArray, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
    LuminanceSource source = new RGBLuminanceSource(bitmap.getWidth(), bitmap.getHeight(), intArray);
    Reader reader = new MultiFormatReader();
    try {
        Result result = reader.decode(new BinaryBitmap(new HybridBinarizer(source)));
        return result.getText();
    } catch (NotFoundException e) {
        e.printStackTrace();
        return null;
    } catch (ChecksumException e) {
        e.printStackTrace();
        return null;
    } catch (FormatException e) {
        e.printStackTrace();
        return null;
    }
}
Другие вопросы по тегам