1

我正在使用 Vision api 来检测二维码。它适用于三星设备,但不适用于 LG 设备。两台设备都在 6.0.1 版本上运行,也没有错误。有什么建议吗?

4

2 回答 2

1

这里有一些Zxing-LibraryVision API的示例,希望对您有所帮助。

基于Zxing-Library的示例项目

Zxing 代码示例 1

Zxing代码示例2

虽然用于 QR 条码的Vision API试试这个

视觉 API 代码示例 1在此处输入图像描述

视觉 API 代码示例 2

视觉 API 代码示例3

于 2017-10-04T15:34:43.300 回答
0

我遇到了在 Redmi 和 Infinix 设备上未检测到 QR 的相同问题,这是我的解决方案:

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;
    }
}
于 2020-07-18T03:54:18.933 回答