【发布时间】:2014-10-07 13:29:05
【问题描述】:
当我在 ACR122U 上模拟卡时,我的 Galaxy 5 出现了奇怪的行为。
我认为问题发生在我运行 Android 更新时。当应用程序不在前台时,我的意图过滤器不再捕获标记,因为模拟标记被视为JIS 6319-4 而不是ISO/IEC 14443-4 标记。
当应用程序不在前台或 在前台并在foregroundDispatch 中运行时我得到的序列:
TgInitAsTarget
> FF 00 00 00 27 D4 8C 04 04 00 01 23 45 20 000000000000000000000000000000000000000000000000000000000000
< D5 8D 08 E0 80 90 00
TgGetData
> FF 00 00 00 02 D4 86
Target has been released error
< D5 87 29 90 00
我循环了 5 次,但 TgInitAsTarget 都不起作用。当我使用enableReaderMode(没有跳过NDEF)时,我得到了正确的序列:
...
> FF 00 00 00 02 D4 86 //TgGetData
< D5 87 00 00 A4 04 00 07 D2 76 00 00 85 01 01 00 9000 //SELECT command
> FF 00 00 00 05 D4 8E 02 6A 82 //file or application not found
< D5 8F 00 90 00 //Ack
> FF 00 00 00 02 D4 86 //TgGetData
< D5 87 00 00 A4 04 00 07 D2 76 00 00 85 01 00 90 00 //SELECT command
> FF 00 00 00 05 D4 8E 02 6A 82 //file or application not found
< D5 8F 00 90 00 //Ack
> FF 00 00 00 02 D4 86 //TgGetData
< D5 87 00 00 A4 04 00 07 D2 76 00 00 85 01 00 90 00 //SELECT command
> FF 00 00 00 05 D4 8E 02 6A 82 //file or application not found
< D5 8F 00 90 00 //Ack
TgGetData
> FF 00 00 00 02 D4 86
//Recieving data
问题 1
为什么当应用程序不在前台或使用enableForegroundDispatch 时,Android 什么也不发回?这很奇怪,因为它一直在工作,但看起来更新改变了 NFC 的行为。
问题 2
enableReaderMode(没有跳过 NDEF)的行为与enableForegroundDispatch 的行为不同是否正常?
请注意,阅读器模式是通过以下命令启用的:
nfcAdapter.enableReaderMode(this, this, NfcAdapter.FLAG_READER_NFC_A, null);
【问题讨论】:
-
enableReaderMode使用哪些选项? -
nfcAdapter.enableReaderMode(this, this, NfcAdapter.FLAG_READER_NFC_A, null);
标签: android nfc galaxy hce acr122