android - Nexus S 上的 NFC : "TagLostException" when writing to unknown block on ISO 15693 Chip

标签 android nfc rfid iso-15693

我想知道是否有人偶然发现了我遇到的问题。

我正在编写一个应用程序,使用 Nexus S NFC 功能与特定的 ISO 15693 RFID 芯片通信。大多数时候,手机和芯片之间的通信工作正常。 读取和写入 block 也可以使用 transcieve() 发送原始字节数组。

我的芯片有 8 个 block ,每个 block 有 4 个字节。 当我尝试写入 0 - 7 以外的 block 时,Android 抛出 TagLostException:

07-21 14:07:39.390: WARN/System.err(5770): android.nfc.TagLostException: Tag was lost.
07-21 14:07:39.394: WARN/System.err(5770):     at android.nfc.tech.BasicTagTechnology.transceive(BasicTagTechnology.java:141)
07-21 14:07:39.398: WARN/System.err(5770):     at android.nfc.tech.NfcV.transceive(NfcV.java:92)
07-21 14:07:39.398: WARN/System.err(5770):     at de.myapp.ForegroundDispatchNfcV.sendRawCommand(ForegroundDispatchNfcV.java:246)
07-21 14:07:39.402: WARN/System.err(5770):     at de.myapp.ForegroundDispatchNfcV$3.onClick(ForegroundDispatchNfcV.java:135)
07-21 14:07:39.406: WARN/System.err(5770):     at android.view.View.performClick(View.java:2485)
07-21 14:07:39.406: WARN/System.err(5770):     at android.view.View$PerformClick.run(View.java:9080)
07-21 14:07:39.410: WARN/System.err(5770):     at android.os.Handler.handleCallback(Handler.java:587)
07-21 14:07:39.414: WARN/System.err(5770):     at android.os.Handler.dispatchMessage(Handler.java:92)
07-21 14:07:39.414: WARN/System.err(5770):     at android.os.Looper.loop(Looper.java:123)
07-21 14:07:39.417: WARN/System.err(5770):     at android.app.ActivityThread.main(ActivityThread.java:3683)
07-21 14:07:39.421: WARN/System.err(5770):     at java.lang.reflect.Method.invokeNative(Native Method)
07-21 14:07:39.421: WARN/System.err(5770):     at java.lang.reflect.Method.invoke(Method.java:507)
07-21 14:07:39.425: WARN/System.err(5770):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-21 14:07:39.429: WARN/System.err(5770):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-21 14:07:39.429: WARN/System.err(5770):     at dalvik.system.NativeStart.main(Native Method)

我期望通过阅读 ISO 15693 标准得到 2 个字节,其中包含有关发生的错误的信息,但它看起来好像芯片只是保持安静并且不发送任何应答。 尝试读取无效 block 时也会发生同样的问题。

这是我的卡的问题还是 API/NFC 的问题? 有没有人知道更多关于这个问题?

最佳答案

NFC 芯片有一个内部状态机,可以跟踪它检测到的标签。当标签超出阅读器/手机的范围并且您尝试写入时,您将收到此异常。

关于android - Nexus S 上的 NFC : "TagLostException" when writing to unknown block on ISO 15693 Chip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6773578/

相关文章:

Java - 为什么我的 if/else 语句不能正常工作?

android - 添加Google语言API会导致DuplicateRelativeFileException

java - 为什么 AudioRecord 在设备进入休眠状态时不录制声音,即使我使用了 WakeLock?

java - 如何限制 Android 设备不打开某些特定网站,例如 youtube、facebook

android - 在 NTAG213 中获取异常

android - 设置 NfcV MaxTransceiveLength

Android NfcV 获取信息命令仅返回一个字节

android - 我可以在没有 android list 许可的情况下访问 NFC 吗?

java - ISO C++ 禁止声明没有类型的 'init' [-fpermissive]

java - ACR122 USB SDK - JNI 调用 Winscard.dll