我有一个Android应用程序,可以读取NFC标签.在LG Nexus 4上一切正常,但在三星Galaxy S5上我只能获得I / O异常(在多部手机上测试).
因此,标签的类型为NfcV,并且在NfcV上调用connect()时会得到I / O异常(进一步向下是错误代码-5 ERROR_CONNECT).
NFC TagInfo by NXP可以读取SG5S上标签的内存内容 – 有没有其他方法可以读取NfcV标签而不是connect()和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) {
}
}
}