0

使用 Google 的 MLKit 开发一个 Android 应用程序来扫描 Data Matrix 代码,我无法使用以 ISO-8859-1 编码并包含非 ASCII 字符的数据解析代码。

这是一个示例: DataMatrix 使用 ML Kit 失败

val options = BarcodeScannerOptions.Builder()
    .setBarcodeFormats(Barcode.FORMAT_DATA_MATRIX)
    .build()
val scanner = BarcodeScanning.getClient(options)
scanner.process(image).addOnSuccessListener { barcodes ->
  val barcode = barcodes.firstOrNull()
  Log.i(TAG, barcode?.rawValue)
  Log.i(TAG, String(barcode?.rawBytes!!, StandardCharsets.ISO_8859_1))
}

两个日志语句都返回一个表示“未知编码”的字符串(字面意思)。

我正在使用最新版本的 MLKit 条码扫描库:

implementation 'com.google.mlkit:barcode-scanning:16.1.1

ZXing 完成了这项工作,但它在识别现实生活中遇到了更多困难,扫描并不那么完美。

任何想法,任何提示?

4

2 回答 2

0

条形码图片的问题是条形码周围没有填充,这将返回一个空结果。

在条码内容周围添加一些填充后,检测到条码。检测到条形码.检测结果

于 2021-02-26T18:12:59.643 回答
0

使用最新版本的 ML Kit 条形码扫描库 16.1.2,该rawBytes方法现在返回 QR 码的预期内容,也适用于非 unicode 编码。

implementation 'com.google.mlkit:barcode-scanning:16.1.2'
于 2021-05-25T22:15:02.330 回答