1

我一般不会询问 Ndef - 很明显,我们需要某种格式来进行数据交换。

我正在开发一个必须同时读取的应用程序——非 Ndef(特别是 Mifare Classic)和 Ndef NFC 芯片。我已经分离了读取两者的例程,并且我还管理了检测部分:

Tag tag = intent.getParcelableExtra( NfcAdapter.EXTRA_TAG );
String[] techList = tag.getTechList();

for ( String tech : techList ) {
    if ( MifareClassic.class.getName().equals( tech ) ) {
        String uid = byte2HexString( tag.getId() );
        // TODO
    } else if ( Ndef.class.getName().equals( tech ) ) {
        return this.readNdef( intent );
    }
}

但我不确定的是抽象部分——我是否应该尝试将来自非 Ndef (MC) 芯片的数据编码为 Ndef(如果可能的话),还是应该完全分离这些抽象层?将数据编码为 Ndef 有什么好处吗?

4

1 回答 1

0

使用 NDEF 格式数据的优势在于,它更易于跨不同系统移植。符合 NDEF 标准的数据不仅可以在 Android 上运行,还可以在 Windows8 或 Blackberry 设备(使用 NFC)上运行。

Mifare Classic 芯片不是NFC规范的一部分,因此仅适用于具有 NXP 协议软件的手机,但在这些手机上,您可以轻松地将 NDEF 格式的数据存储到 Mifare Classic 芯片中。

要做的决定更多的是特定设备是否支持 Mifare Classic 芯片,而不是您是否要使用 NDEF。

于 2013-07-12T10:16:53.247 回答