Android Vision条形码API - 使用二进制数据读取自定义QR码

voj*_*jta 9 java android qr-code barcode android-vision

我用com.google.android.gms.vision.barcode.BarcodeDetector它来读取QR码.问题是这些代码携带原始二进制数据; 没有电话号码,没有URL,没有地理位置......我无法更改这些QR码,因为它们是在不同的应用程序中生成的.

当我使用Android Barcode API扫描这些QR码时,生成的Barcode对象不允许我访问原始数据,尽管它必须知道它!

我得到的只是"Unknown encoding"信息rawValuedisplayValue属性.

拥有byte[]属性而不是两个String属性会更有意义,因为QR码可以携带一般数据.

我没有看到隐藏开发人员的原始数据字节数组的意义.我可以以某种方式扩展BarcodeDetector课程或Barcode课程以获得我需要的东西吗?

编辑:

这是一个绝对有效的QR码,虽然它带有1024字节的数据,但Vision API无法读取它:

在此输入图像描述


QR码 - 原始二进制数据是相关的,但它不能解决我的问题.

Him*_*ary 1

我认为你需要自己编写一些实现。正如我在 API 中清楚地看到的那样,rawData 由 String 保存,这根本无法确保二进制数据类型的完整性。

我将使用我自己的 BarCode 对象编写自己的 BarcodeDetector,其中 byte[] 作为来自 QR 码的 rawData 的数据类型,并覆盖 detector() 方法以将 rawData 分配给我的 BarCode 实现。由于您的案例非常具体,因此您应该毫不犹豫地编写自己的实现。也可以在 github 上分享给其他人。