Skip to content Skip to sidebar Skip to footer

Android Vision Api - Barcode Detection How To Get Type Of Barcode?

I am working with Android Google Vision API, and have created a standard barcode reader, but I want to detect what type/format of barcode is read i.e. CODE 39, CODE 128, QR Code...

Solution 1:

Because I does not found any bulid-in function to decode Format integer value to text value
I used following custom method

private String decodeFormat(int format) {
    switch (format){
        case Barcode.CODE_128:
            return "CODE_128";
        case Barcode.CODE_39:
            return "CODE_39";
        case Barcode.CODE_93:
            return "CODE_93";
        case Barcode.CODABAR:
            return "CODABAR";
        case Barcode.DATA_MATRIX:
            return "DATA_MATRIX";
        case Barcode.EAN_13:
            return "EAN_13";
        case Barcode.EAN_8:
            return "EAN_8";
        case Barcode.ITF:
            return "ITF";
        case Barcode.QR_CODE:
            return "QR_CODE";
        case Barcode.UPC_A:
            return "UPC_A";
        case Barcode.UPC_E:
            return "UPC_E";
        case Barcode.PDF417:
            return "PDF417";
        case Barcode.AZTEC:
            return "AZTEC";
        default:
            return "";
    }
}

Solution 2:

Found it in the documentation (missed it previously). https://developers.google.com/android/reference/com/google/android/gms/vision/barcode/Barcode

Using

format

you can get the barcode type this is retuned as an integer.


Solution 3:

valueFormat returns the type, it can match the static variables of the API. Example:

    final SparseArray <Barcode> barcodes = detections.getDetectedItems ();
    if (barcodes.size ()! = 0) {
                    txtBarcodeValue.post (new Runnable () {
                        @Override
                        public void run () {
                            System.out.println ("barcodes");
                            System.out.println (barcodes.valueAt (0) .format); // 256
                            System.out.println (barcodes.valueAt (0) .valueFormat); // 1 or 2 or 3 ....
......
.

and the codes you can find them in the class Barcode.class

public static final int CONTACT_INFO = 1;
    public static final int EMAIL = 2;
    public static final int ISBN = 3;
    public static final int PHONE = 4;
    public static final int PRODUCT = 5;
    public static final int SMS = 6;
    public static final int TEXT = 7;
    public static final int URL = 8;
    public static final int WIFI = 9;
    public static final int GEO = 10;

enter image description here


Post a Comment for "Android Vision Api - Barcode Detection How To Get Type Of Barcode?"