【发布时间】:2018-11-14 07:16:19
【问题描述】:
我们有一个用于模拟 POS 终端的应用程序,即它通过 NFC 与借记卡/信用卡进行通信。 在我使用的所有应用活动中:
nfcAdapter.enableReaderMode(this,
nfcCallback,
NfcAdapter.FLAG_READER_NFC_A |
NfcAdapter.FLAG_READER_NFC_B |
NfcAdapter.FLAG_READER_NFC_F |
NfcAdapter.FLAG_READER_NFC_V |
NfcAdapter.FLAG_READER_NO_PLATFORM_SOUNDS |
NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK,
null
);
为了禁用 NDEF 发现,因为它会干扰卡通信。它运作良好,但仅在活动中,即当开始新活动或完成使用startActivityForResult 调用的活动时,显然存在操作系统发送一个 NDEF 标记发现消息的中间状态,例如:
2018-11-14 09:07:11.794 802-3109/? D/NxpNciX: len = 16 > 00000D00A4040007D276000085010100
2018-11-14 09:07:11.794 802-3109/? D/NxpTml: PN54X - I2C Write successful.....
主要问题是这是不可重复的,即有时会发生,有时不会。这是个大问题。
有没有办法在应用级别禁用 NDEF 标记发现,而不仅仅是针对活动?
或
这个问题有解决办法吗?
【问题讨论】:
-
在此处查看我的答案:stackoverflow.com/a/36990511/2425802 我认为您在受影响的设备上对此无能为力。
-
@MichaelRoland 是的,我昨天看到了你的回答。我只是希望有人找到解决方法......