我正在关注用于 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
});