任何人都可以告诉我这个函数背后的"科学"
`IsoDep.get(tag)`
由于它返回 null 标记被正确读取。我正在日食中运行安卓应用程序。
执行以下过程。
1)获取NFC技术标签,即使用tag.getTechList()方法即可找到。
2)假设设备仅支持一个技术标签,如 NfcF
3)然后使用安卓类进行NfcF,如下所示
NfcF mifare = NfcF.get(tag);
try {
mifare.connect();
if(mifare.isConnected()){
byte[] historicalData=mifare.getManufacturer();
return new String(historicalData, Charset.forName("US-ASCII"));
}
} catch (IOException e) {
Log.e("Deepak", "IOException while writing MifareUltralight message...", e);
}
希望它能帮助你。 :)
享受编码...
如果你看一下文档:
- 如果 IsoDep 未在 getTechList() 中枚举,则返回 null。这表示标记不支持 ISO-DEP。
看起来您正在阅读的NFC标签不支持IsoDep。
要了解支持的内容,请使用此方法。
private static String debugTag(Tag tag)
{
String str = "=== DEBUG TAG ===";
for (String techListItem : tag.getTechList())
{
str += "n" + techListItem;
}
return str;
}