我刚刚收到Mifare Ultralight C.我可以使用android手机(Galaxy Ace 3)轻松读取它的值。在Mifare Ultralight上写入受限时读取C
0 hex: 04 9a 6f 79
1 hex: 52 02 3a 80
2 hex: ea 48 00 00
3 hex: 00 00 00 00
4 hex: 02 00 00 10
5 hex: 00 06 01 10
6 hex: 11 ff 00 00
7 hex: 00 00 00 00
8 hex: 00 00 00 00
9 hex: 00 00 00 00
10 hex: 00 00 00 00
11 hex: 00 00 00 00
12 hex: 00 00 00 00
13 hex: 00 00 00 00
14 hex: 00 00 00 00
15 hex: 00 00 00 00
16 hex: 00 00 00 00
17 hex: 00 00 00 00
18 hex: 00 00 00 00
19 hex: 00 00 00 00
20 hex: 00 00 00 00
21 hex: 00 00 00 00
22 hex: 00 00 00 00
23 hex: 00 00 00 00
24 hex: 00 00 00 00
25 hex: 00 00 00 00
26 hex: 00 00 00 00
27 hex: 00 00 00 00
28 hex: 00 00 00 00
29 hex: 00 00 00 00
30 hex: 00 00 00 00
31 hex: 00 00 00 00
32 hex: 00 00 00 00
33 hex: 00 00 00 00
34 hex: 00 00 00 00
35 hex: 00 00 00 00
36 hex: 00 00 00 00
37 hex: 00 00 00 00
38 hex: 00 00 00 00
39 hex: 00 00 00 00
40 hex: 00 00 00 00
41 hex: 00 00 00 00
42 hex: 30 00 00 00
43 hex: 00 00 00 00
然后我改变43页值0x80
和42页至0x2A
。现在,当我在读值是这样的:
Log.e(LOG, "read");
for(int j = 0; j <= 40; j += 4){
byte[] resp = mifare.readPages(j);
logResponse(j, resp);
private void logResponse(int j, byte[] resp){
for(int i = 0; i < resp.length; i += 4){
Log.e(LOG, String.valueOf(j + i/4) + " hex: "
+ String.format("%02x ", resp[i])
+ String.format("%02x ", resp[i + 1])
+ String.format("%02x ", resp[i + 2])
+ String.format("%02x", resp[i + 3]));
}
}
我越来越从0第43页。值和1,而不是42和
接下来的事情是,当我为了验证发送消息0x1A00
,我得到transceive failed
。
有没有办法检查它是否真的是Mifare Ultralight C或其他标签?或者我错误地认为第43页中的值0x80
仅限制写访问?
只是测试AUTH1值你是对的,我的错误。真正奇怪的是,它限制了正确的读/写,但是在验证命令方面存在问题。要清楚,我使用MifareUlralral作为mifare对象,可以吗? – 2014-09-24 11:32:23
MifareUltralight和NfcA都可以。 YOu在0x1A字节后发送零字节,对吗?在发送身份验证命令之前,您还使用了哪些操作?你正在执行任何读/写操作? – 2014-09-24 11:48:06
我的命令与您的文章完全相同。只有在此命令之前连接()。我已经尝试过在auth命令之前读取同样的行为。 – 2014-09-24 11:57:34