gpt4 book ai didi

android - 无法格式化 NdefFormatable NFC 标签

转载 作者:行者123 更新时间:2023-11-29 23:41:44 24 4
gpt4 key购买 nike

我正在开发一个使用 NFC 的 Android 应用程序。我有一些具有以下技术列表的 NFC 卡:

  • android.nfc.tech.NfcA
  • android.nfc.tech.MifareClassic
  • android.nfc.tech.NdefFormatable

但我无法使用 NdefFormatable.format(message) 格式化这些标签。相反,我得到一个 IOException。

代码:

try {
NdefRecord[] records1 = { createRecord("000000") };
NdefMessage message1 = new NdefMessage(records1);
formatable.format(message1);
res = 1;
}

堆栈跟踪给出了这些日志:

W/System.err: java.io.IOException
W/System.err: at android.nfc.tech.NdefFormatable.format(NdefFormatable.java:131)
W/System.err: at android.nfc.tech.NdefFormatable.format(NdefFormatable.java:94)
at com.example.peng.nfcreadwrite.MainActivity.write(MainActivity.java:170)
W/System.err: at com.example.peng.nfcreadwrite.MainActivity.access$000(MainActivity.java:27)
at com.example.peng.nfcreadwrite.MainActivity$1.onClick(MainActivity.java:60)
at android.view.View.performClick(View.java:6877)
W/System.err: at android.widget.TextView.performClick(TextView.java:12651)
at android.view.View$PerformClick.run(View.java:26069)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
W/System.err: at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

也许有人可以给我一些东西来研究,因为我对 Android 上的 NFC 还很陌生。

编辑

这是我使用 Mifare Classic Tool 截取的屏幕截图。它显示第 4 到 8 扇区“未找到 key (或死扇区)”:

最佳答案

Android 上 MIFARE Classic 标签的 NDEF 格式化程序要求标签为空且可使用默认传输 key (FFFFFFFFFFFF)或某些标准 key (扇区的 MAD key )访问(读和写) 0,其他扇区的 NDEF key )。如果标签的某些扇区不可访问,Android 将无法格式化标签以用于 NDEF。

因此,您的标签无法用于您的目的。尽管您可以手动格式化标签以跳过那些锁定的扇区。我不太确定 Android 是否能够使用这些标签。

关于android - 无法格式化 NdefFormatable NFC 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51778467/

24 4 0