Android Vision API-条形码格式



我遵循https://github.com/wax911/vision-barcode-scanner/tree/master/barcode-reader/barcode-reader/app/src/src/main/java/java/comcom/google/-Android/gms/示例此git将视觉API实现到我的应用程序中。我可以成功地检测条形码和QR码,但面临格式的问题。以下是我的实现:

条形码初始化:

 BarcodeDetector barcodeDetector = new BarcodeDetector.Builder(context).setBarcodeFormats(Barcode.QR_CODE |
                Barcode.DATA_MATRIX | Barcode.UPC_E | Barcode.UPC_A | Barcode.CODABAR).build();
        BarcodeTrackerFactory barcodeFactory = new BarcodeTrackerFactory(mGraphicOverlay, autoCapture ? this : null);
        barcodeDetector.setProcessor(
                new MultiProcessor.Builder<>(barcodeFactory).build());

条形码检测后,我正在尝试识别被检测到的格式。BELOW是代码

public void updateList(Detector.Detections<Barcode> barcodeList) {
    this.barcodeList = barcodeList;
    final SparseArray<Barcode> detectedItems = barcodeList.getDetectedItems();
    for (int i = 0; i < detectedItems.size(); i++) {
        Log.e("Value", "------>" + detectedItems.valueAt(i));
        final Barcode barcode = detectedItems.valueAt(i);
        final int value = detectedItems.valueAt(i).valueFormat;
        switch (value) {
            case Barcode.DATA_MATRIX:
                Log.i("Value", barcode.rawValue);
                break;
            case Barcode.QR_CODE:
                Log.i("Value", barcode.rawValue);
                break;
            case Barcode.CODABAR:
                Log.i("Value", barcode.rawValue);
                break;
            case Barcode.UPC_E:
                Log.i("Value", barcode.rawValue);
                break;
            case Barcode.UPC_A:
                Log.i("Value", barcode.rawValue);
                break;
            case Barcode.TEXT:
                Log.i("Value", barcode.rawValue);
                break;
        }
    }
    final String noItems = detectedItems.toString();
}

我的问题是,每当我扫描QR代码格式结果时,结果是'codabar'而不是qrcode,同样每当我扫描条形码时,格式化的结果是'text'而不是 upc_e upc_a upc_a

请帮助。

您必须将条形码格式更改为setBarcodeformats(barcode.all_formats(然后只有您可以使用所有格式。

最新更新