调试时返回 null " IsoDep.get(tag)"



任何人都可以告诉我这个函数背后的"科学"

 `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;
}

最新更新