使用MLKit的BarcodeScanner时,可以通过设置BarcodeScannerOptions来指定要扫描的格式。在这种情况下,将扫描格式更改为Barcode.FORMAT_ALL即可解决问题。
例如:
BarcodeScannerOptions options = new BarcodeScannerOptions.Builder() .setBarcodeFormats(Barcode.FORMAT_ALL) .build();
BarcodeScanner scanner = BarcodeScanning.getClient(options);
如果修改扫描格式仍无法解决问题,可以尝试手动识别。使用MLKit的Text Recognition API,将扫描到的条码转换为文本,然后使用正则表达式进行验证。
例如:
TextRecognizer recognizer = TextRecognition.getClient();
Task
} else {
// 不符合 CODE_39 格式
// ...
}
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// 处理失败情况
// ...
}
});
这种方法虽然比较繁琐,但是可以提高识别准确率。