diff --git a/app/src/main/java/com/termux/api/apis/NfcAPI.java b/app/src/main/java/com/termux/api/apis/NfcAPI.java index a402c1384..dcb592713 100644 --- a/app/src/main/java/com/termux/api/apis/NfcAPI.java +++ b/app/src/main/java/com/termux/api/apis/NfcAPI.java @@ -19,6 +19,8 @@ import com.termux.api.util.ResultReturner; import com.termux.shared.logger.Logger; +import java.nio.charset.StandardCharsets; + public class NfcAPI { private static final String LOG_TAG = "NfcAPI"; @@ -165,6 +167,9 @@ public void writeJson(JsonWriter out) throws Exception { case "full": readFullNDEFTag(intent,out); break; + case "id": + readNDEFID(intent,out); + break; case "noData": readNDEFTag(intent,out); break; @@ -245,6 +250,18 @@ public void readNDEFTag(Intent intent, JsonWriter out) throws Exception { } } + public void readNDEFID(Intent intent, JsonWriter out) throws Exception { + NfcAdapter adapter = NfcAdapter.getDefaultAdapter(this); + byte[] tag_id = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID); + out.beginObject(); + StringBuilder sb = new StringBuilder(); + for (byte b : tag_id) { + sb.append(String.format("%02X", b)); + } + out.name("card_id").value(sb.toString()); + out.endObject(); + } + public void readFullNDEFTag(Intent intent, JsonWriter out) throws Exception { Logger.logVerbose(LOG_TAG, "readFullNDEFTag");