2

我正在关注用于 ML Kit 条码扫描的quickstart-android repo。在我的实现中,我注意到onSuccess当我第一次启动相机检测条形码时会触发回调,这很好。但是,当我将相机对准有效条形码时,条形码列表本身是空的。回调被onSuccess调用,但条形码列表为空。

当我将应用程序置于后台,然后将其置于前台时,条形码列表开始被填充(barcodes.size() 不再为零)。

有谁知道为什么会这样?

final FirebaseVisionImage firebaseImage = 
FirebaseVisionImage.fromMediaImage(image, rotation);

FirebaseVisionBarcodeDetectorOptions options = new 
FirebaseVisionBarcodeDetectorOptions.Builder().setBarcodeFormats(
        FirebaseVisionBarcode.FORMAT_ALL_FORMATS).build();

barcodeDetector = FirebaseVision.getInstance().getVisionBarcodeDetector(options)
barcodeDetector.detectInImage(firebaseImage).addOnSuccessListener((barcodes) -> 
{          
    // note that the success callback is called and I do get here
    // but barcode list is empty initially                    
    for (FirebaseVisionBarcode barcode : barcodes)
    {
        // we never get here since barcodes.size() is 0
        // until I background the app, then foreground it
        // after backgrounding, then foregrounding, we start
        // detecting barcodes
    }
    }).addOnFailureListener((exception) -> {
        //TODO: handle failure
    });                
4

0 回答 0