簡體   English   中英

未檢測到寫入 mifare 1k 卡的 Ndef 數據

[英]Ndef data written in mifare 1k card not getting detected

我已經在 Mifare 卡中寫入了 Ndef 數據,我希望它可以被任何支持 NFC 的安卓設備讀取,無論是否支持 Mifare 卡。

一些手機,如Honor 8 pro(不支持Mifare)可以讀取標簽,但其他手機(如三星J7)無法讀取。

我在圖像中附加了卡片數據。Mifare 數據轉儲 我已使用非標准密鑰將扇區 2 及以后的扇區設為私有

public void onTagDiscovered(Tag tag) {
// This is getting called for all devices
 Ndef ndef = Ndef.get(tag);
}

ndef 在三星 j7 中為 null,而在榮耀 8 pro 中有一個對象。

知道為什么會發生這種情況或任何其他方式來實現這一目標嗎?

請注意,在某些手機上,操作系統不報告 Mifare 支持,盡管 Mifare Classic 卡可以正常讀取。 如果存在 Mifare 支持,Android 應該報告com.nxp.mifare系統功能,但有些手機沒有。

因此,某些應用程序(例如Tapkey 的 NFC Check)有時會報告 Mifare 支持不存在,盡管它存在。 需要明確的是,這不是這些應用程序的錯,而是操作系統的錯。 已知一些較舊的 Moto 手機存在此問題。 根據你的描述,Honor 8 pro 似乎也有同樣的問題,否則它不會返回Ndef實例。 另一方面,可能三星 J7 實際上真的不支持 Mifare,這就是它不返回Ndef實例的原因。

從你的問題我推斷,你說的是Mifare Classic卡。 請注意,與 Mifare Classic 相比,其他 Mifare 卡,即 Mifare DESFire 卡,可以充當 Type 4 NDEF 標簽,因此甚至可以被不支持專有 Mifare classic 的手機讀取。 這是因為 Type 4 NDEF 標簽是標准化的。 它們基於標准化的 ISO 7816 協議,幾乎所有支持 NFC 的手機都支持它們。

因此,長話短說,您可能無法使用真正不支持 Mifare 的手機讀取 Mifare 經典卡,而讀取像 Mifare DESFire 這樣的卡應該可以正常工作。 DESFire 的其他優點是,它們更安全、尺寸更大且更靈活。 最大的缺點是,它們要貴得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM