Как я могу прочитать mifare classic 1k Card от Nexus s - PullRequest
3 голосов
/ 14 апреля 2011

Я работаю с NFC для Android и хочу читать карты Mifare Classic. Кто-нибудь знает, как читать секторы с такой карты?

Метод аутентификации возвращает true, что означает, что аутентификация выполнена. После аутентификации сектор должен быть готов к любому действию ввода-вывода, но всякий раз, когда я использую метод readBlock () или метод transceive (), я получаю исключение с IOException («transceive fail»). Я не могу найти ни одного примера, который использует Mifare Classic, поэтому я хочу знать, возможно ли читать Mifare Classic с этим API или нет.

Мой код такой boolean success = m1tag.authenticateSectorWithKeyB(0,MifareClassic。KEY_DEFAULT) int index = m1tag.sectorToBlock(0) byte[] content = m1tag.readBlock(index)

успех верен, но когда я читаю содержимое с карты, выдает IOException («сбой передачи»)

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Вы не сможете readBlock() или writeBlock() после использования authenticateSectorWithKeyB(). Если это новый тег с битами доступа по умолчанию, доступ к тегу будет заблокирован. Если условия доступа были изменены, то readBlock() и writeBlock() сгенерируют исключение. Вам нужно будет выполнить чтение тега с использованием аутентификации KeyA.

0 голосов
/ 30 августа 2012

Вы не можете прочитать Блок карты mifare, авторизировавшись с помощью keyB.Чтобы прочесть блок карты Mifare, вам нужно будет переписаться с ключом A, т. Е. Использовать authenticateSectorWithKeyA() вместо authenticateSectorWithKeyB().

...