从Android读取和写入文本到NFC卡

时间:2019-12-31 06:46:34

标签: android nfc mifare

我目前正在尝试使用NFC卡制作登录系统。 这个想法是,Android会将用户名写入NFC卡,然后在Android上扫描该卡时,该卡上的用户将自动登录。

  1. 这可以做到吗? (请不要判断是否合乎逻辑)
  2. 如果可以的话,有没有深入的教程可以做到?

我卡片上的技术是:

  • NfcA
  • Mifare Classic 1K
  • NdefFormatable

我已经搜索了几天,找不到任何可行的解决方案。

1 个答案:

答案 0 :(得分:0)

可以做到吗?是的

大多数教程和Android文档都指向您使用enableForegroundDispatch,但是这种使用NFC的方式存在很多问题,由于它会暂停您的应用执行读取操作,因此在实际用户操作中会产生不可靠的读取结果。在实际用户操作中写入也非常不可靠,因为它会在写入完成之前发出哔哔声来误导用户。

最好使用enableReaderMode https://developer.android.com/reference/android/nfc/NfcAdapter.html#enableReaderMode(android.app.Activity,%20android.nfc.NfcAdapter.ReaderCallback,%20int,%20android.os.Bundle)

但是我还没有找到有关此问题的教程,但是下面提供了其他答案的一些提示。

enableReaderMode的示例位于https://stackoverflow.com/a/59397667/2373819

虽然您可能不想或需要转到此答案中显示的低级数据读取(或低级写入),但您可能想使用高级NDEF数据格式代替

为了获得可靠的写入,当您尝试对其进行写操作并很好地处理写错误时,请不要假定该卡仍在范围内。我发现最好的方法是存储要写入的数据,直到通知您的应用程序已检测到标签,然后立即将其写入卡。 https://stackoverflow.com/a/59423011/2373819

中显示的逻辑