package com.novadart.reactnativenfc.parser;

import android.nfc.Tag;

import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.WritableNativeArray;
import com.facebook.react.bridge.WritableNativeMap;
import com.novadart.reactnativenfc.NfcDataType;

public class TagParser {

    public static WritableMap parse(Tag tag){
        WritableMap result = new WritableNativeMap();

        result.putString("type", NfcDataType.TAG.name());

        WritableMap data = new WritableNativeMap();

        WritableArray techList = new WritableNativeArray();
        String[] techListStr = tag.getTechList();
        if(techListStr != null){
            for (String s: techListStr) {
                techList.pushString(s);
            }
        }

        data.putArray("techList",techList);
        data.putString("description",tag.toString());

        result.putMap("data",data);
        return result;
    }

}

@@ -895,24 +895,87 @@
 oString());%0A
+        data.putString(%22id%22,ByteArrayToHexString(tag.getId()));
 %0A        res
@@ -1029,10 +1029,469 @@
 %0A    %7D%0A%0A
+    public static String ByteArrayToHexString(byte%5B%5D inarray) %7B%0A        int i, j, in;%0A        String%5B%5D hex = %7B%220%22, %221%22, %222%22, %223%22, %224%22, %225%22, %226%22, %227%22, %228%22, %229%22, %22A%22, %22B%22, %22C%22, %22D%22, %22E%22, %22F%22%7D;%0A        String out = %22%22;%0A%0A        for (j = 0; j %3C inarray.length; ++j) %7B%0A            in = (int) inarray%5Bj%5D & 0xff;%0A            i = (in %3E%3E 4) & 0x0f;%0A            out += hex%5Bi%5D;%0A            i = in & 0x0f;%0A            out += hex%5Bi%5D;%0A        %7D%0A        return out;%0A    %7D%0A%0A%0A
 %7D%0A

Update TagParser.java