我有一个读取 NFC 标签的 Android 应用程序。在 LG Nexus 4 上一切正常,但在三星 Galaxy S5 上我只得到 I/O 异常(在多部手机上测试)。
因此,标签的类型为 NfcV,并且在调用 NfcV 时出现 I/O 异常connect()
(进一步向下是错误代码 -5 ERROR_CONNECT)。
NXP 的 NFC TagInfoconnect()
可以读取 SG5S 上标签的内存内容 - 除了使用和之外,还有其他读取 NfcV 标签的方法transceive()
吗?
NFC 芯片之间的哪些差异会导致我的应用在一部手机上连接失败,但在另一部手机上却没有(而其他应用读取它正常)?我可能需要调整超时吗?
代码片段:
NfcV nfcvTag = NfcV.get(intent.getParcelableExtra(NfcAdapter.EXTRA_TAG));
if(nfcvTag!=null){
try {
nfcvTag.connect();
//{flags:0x00, read multiple blocks command: 0x23, start at block 0: 0x00, read 9 blocks (0 to 8): 0x08}
response = nfcvTag.transceive(new byte[] {(byte)0x00,(byte)0x23,(byte)0x00,byte)0x08});
} catch (IOException e) {
Log.d("NFCService", nfcvTag.toString());
} finally {
try {
nfcvTag.close();
} catch (IOException e) {
}
}
}