Я только что получил 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 и 1 вместо 42 и 43.
Следующая вещь, что когда я отправить сообщение 0x1A00
, чтобы отождествить, я Получается transceive failed
.
Есть ли способ проверить, действительно ли это Mifare Ultralight C или какой-либо другой тег? Или я ошибаюсь, что значение 0x80
на стр. 43 ограничивает доступ только для записи?
Только проверенные значения auth1 и вы правы в этом, моя ошибка. Это действительно странно, что он ограничивает чтение/запись правильно, но имеет проблемы с командой аутентификации. Чтобы быть ясным, я использую MifareUltralight как объект mifare, хорошо? –
Оба MifareUltralight и NfcA в порядке. Вы посылаете нулевой байт после байта 0x1A, правильно? Также, какие операции вы используете * перед отправкой команды аутентификации? Выполняете ли вы какие-либо операции чтения/записи? –
Моя команда точно такая же, как и в вашем посте. Только connect() перед этой командой. Я уже пробовал также читать перед командой auth, такое же поведение. –