因此,我已经将ACR1252U USB阅读器连接到Samsung Galaxy平板电脑,并且我正在尝试为我的Android应用读取MIFARE Ultralight标签。
我在NFC方面还很陌生,到目前为止,我已经弄清楚如果我想读取任何内容,则需要向标签发送APDU。在APDU中,还指定了一个块号,该块号告诉读取器从哪里开始读取,这就是我的问题所在。我知道我想要什么数据,但我不知道要传输什么APDU。
我正在使用的APDU“格式”类似于FF B0 00 04 10h
,其中倒数第二个是起始块号。
此外,这是有关我尝试读取的标签的一些详细信息:
如果您查看第二张图片(https://i.imgur.com/7V95GZs.png),则记录0-外部开头的 99831 是我唯一的一条信息。想。这是我需要提取的参与者ID,以后将在我的应用程序中使用。
我希望我已经足够详细了。任何指导将不胜感激。
更新:我设法通过增加APDU命令中的block#来弄清它,直到看到所需要的数据为止。
对我有用的APDU是ff b0 00 0a 06
,它返回64 39 39 38 33 31 90 00
(ASCII = d99831
)。那就是那里的参与者ID。
现在的问题是,我想要的数据的起始块号可能在每个NFC标签上都不相同。我有没有更快的方法跳到有效载荷中的那个区域?还是我必须遍历数据并手动查找?如果是后者,那我该怎么做?是否有特殊字符或十六进制值分隔NFC标签上数据的不同部分?
我用来检查每个标签的有效载荷的NFC工具应用程序能够以某种方式分离或区分有效载荷中的不同部分。他们怎么样?