【发布时间】:2016-08-25 08:48:21
【问题描述】:
我正在编写一个应用程序来读取 NFC 标签的二进制信息。下面是 NFC 意图处理函数的代码:
protected void onNewIntent(@NonNull Intent intent)
{
try
{
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
NfcV nfcV = NfcV.get(tag);
byte[] cmdInfo = new byte[]{(byte) 0x02, (byte) 0x2b}; // 'Get info' command
byte[] answer = nfcV.transceive(cmdInfo); // Read info from tag.
...
}
catch(IOException e)
{
...
}
}
如果我在 Samsung S3 Neo 上运行此函数读取 NFC 标签,一切正常,答案变量将填充预期数据:
00 04 4B A0 14 01 00 A0 07 E0 F3 07但是,如果我在华为 P8lite 上运行相同的函数读取相同的 NFC 标签,则答案变量仅填充一个字节:
03如果出现错误,ISO 15693-3 标准规定我应该收到类似的东西
01 03即至少两个字节,其中第二个字节是错误代码。所以我实际得到的答案在理论上是不可能的。
我做错了什么?它取决于移动硬件吗?我该如何解决?
【问题讨论】:
标签: android tags nfc rfid iso-15693