android: 如何使用 EasyNFC 获取 NFC 标签 ID

android: How to get NFC tag ID using EasyNFC

我有一个 NFC 无源标签,想使用 EasyNFC 库获取标签的唯一 ID。如何做到这一点?

通常库通过 [NdefMessage][2],其中包含一个 [NdefRecord][3] 的数组,但不确定它们的确切含义加上文档和示例应用程序在这方面不是很清楚。

首先,在 onCreate()

中以这样的交换模式配置 EasyNFC
mNfc = new Nfc(this);
mNfc.enableExchangeMode();

然后onNewIntent()就可以拿到了

public void onNewIntent(Intent intent) {
    if (mNfc.onNewIntent(this, intent)) {
        Log.i("Foreground dispatch", "Discovered tag with intent: " + intent);
        Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
        tag.getId(); // <---- AWESOME !!!
        NdefMessage newMessage = prepareNdefMessage();
        boolean result =writeNdefMessageToTag(newMessage, tag);
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                finish();
            }
        });
    }
}