“IsoDep.get(tag)”在调试时返回null

时间:2012-07-04 17:01:53

标签: android mobile nfc

任何人都可以告诉我这个功能背后的“科学”

 `IsoDep.get(tag)` 

因为它返回 null 甚至标记被正确读取。 我在eclipse中运行android应用程序。

2 个答案:

答案 0 :(得分:0)

执行以下程序。

1)获取NFC技术标签,即使用tag.getTechList()方法不难找到。

2)假设设备仅支持一个技术标签,如NfcF

3)然后使用Android类作为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);
        } 

希望它会对你有所帮助。 :)

享受编码...

答案 1 :(得分:-1)

如果您查看documentation

  • 如果未在getTechList()中枚举IsoDep,则返回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;
}