簡體   English   中英

ML Kit條形碼掃描儀提供空輸出

[英]ML Kit Barcode Scanner gives empty output

我在使用ML Kit Barcode Scanner時遇到了麻煩。 當我嘗試解碼樣本QR碼時,

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.qr_code_sample);
        FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap);
        FirebaseVisionBarcodeDetector detector = FirebaseVision.getInstance().getVisionBarcodeDetector();
        Task<List<FirebaseVisionBarcode>> result = detector.detectInImage(image)
                .addOnSuccessListener(new OnSuccessListener<List<FirebaseVisionBarcode>>() {
                    @Override
                    public void onSuccess(List<FirebaseVisionBarcode> barcodes) {
                        for (FirebaseVisionBarcode barcode:barcodes) {
                            Log.e("Log", "QR Code: "+barcode.getUrl().getUrl());
                        }
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Log.e("Log", "Decode QR Code failed");
                    }
                });

輸出是這樣的:

QR Code: ""

如何解決這個問題呢?

根據API參考getUrl()是:

設置iff getValueType()TYPE_URL

因此,您的條形碼可能不是URL /書簽,或ML Kit不能識別它。

我建議打印這3個值:

@Override
    public void onSuccess(List<FirebaseVisionBarcode> barcodes) {
        for (FirebaseVisionBarcode barcode:barcodes) {
            Log.e("Log", "QR Code: "+barcode.getDisplayValue()); //Returns barcode value in a user-friendly format.
            Log.e("Log", "Raw Value: "+barcode.getRawValue());//Returns barcode value as it was encoded in the barcode. 
            Log.e("Log", "Code Type: "+barcode.getValueType()); //This will tell you the type of your barcode
        }
    }

您可能會在前兩行中找到所需的輸出。 第三行告訴您掃描的條形碼的類型。

要從條形碼中提取標題和網址,您需要在條形碼中包含Url Bookmark,而不僅僅是Url。

包含url書簽的條形碼原始數據如下所示:MEBKM:TITLE:MyBookmark; URL:www.google.com ;;

當您使用ML KIT掃描僅包含URL的條形碼時,您將獲得如下的原始數據:www.google.com

因此,為了能夠從FirebaseVisionBarcode.UrlBookmark類型的對象中提取標題和url數據,您需要在該對象中包含這些數據。

嘗試在此處生成QR碼: https//www.montreallisting.ca/article/qr-code-quick-response-scan-mobile-android-iphone-blackberry/然后使用該圖片提取您想要的數據,您將看得有點不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM