Created
November 9, 2017 13:42
-
-
Save ssaurel/2016c8ca105cce8a58b43c9a2a219ce3 to your computer and use it in GitHub Desktop.
dumpTagData method for the NFC Reader Tutorial
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private String dumpTagData(Tag tag) { | |
StringBuilder sb = new StringBuilder(); | |
byte[] id = tag.getId(); | |
sb.append("ID (hex): ").append(toHex(id)).append('\n'); | |
sb.append("ID (reversed hex): ").append(toReversedHex(id)).append('\n'); | |
sb.append("ID (dec): ").append(toDec(id)).append('\n'); | |
sb.append("ID (reversed dec): ").append(toReversedDec(id)).append('\n'); | |
String prefix = "android.nfc.tech."; | |
sb.append("Technologies: "); | |
for (String tech : tag.getTechList()) { | |
sb.append(tech.substring(prefix.length())); | |
sb.append(", "); | |
} | |
sb.delete(sb.length() - 2, sb.length()); | |
for (String tech : tag.getTechList()) { | |
if (tech.equals(MifareClassic.class.getName())) { | |
sb.append('\n'); | |
String type = "Unknown"; | |
try { | |
MifareClassic mifareTag = MifareClassic.get(tag); | |
switch (mifareTag.getType()) { | |
case MifareClassic.TYPE_CLASSIC: | |
type = "Classic"; | |
break; | |
case MifareClassic.TYPE_PLUS: | |
type = "Plus"; | |
break; | |
case MifareClassic.TYPE_PRO: | |
type = "Pro"; | |
break; | |
} | |
sb.append("Mifare Classic type: "); | |
sb.append(type); | |
sb.append('\n'); | |
sb.append("Mifare size: "); | |
sb.append(mifareTag.getSize() + " bytes"); | |
sb.append('\n'); | |
sb.append("Mifare sectors: "); | |
sb.append(mifareTag.getSectorCount()); | |
sb.append('\n'); | |
sb.append("Mifare blocks: "); | |
sb.append(mifareTag.getBlockCount()); | |
} catch (Exception e) { | |
sb.append("Mifare classic error: " + e.getMessage()); | |
} | |
} | |
if (tech.equals(MifareUltralight.class.getName())) { | |
sb.append('\n'); | |
MifareUltralight mifareUlTag = MifareUltralight.get(tag); | |
String type = "Unknown"; | |
switch (mifareUlTag.getType()) { | |
case MifareUltralight.TYPE_ULTRALIGHT: | |
type = "Ultralight"; | |
break; | |
case MifareUltralight.TYPE_ULTRALIGHT_C: | |
type = "Ultralight C"; | |
break; | |
} | |
sb.append("Mifare Ultralight type: "); | |
sb.append(type); | |
} | |
} | |
return sb.toString(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment