2014-12-10 7 views
1

Я работаю с NFC тегом, который открыл ISO,NFCA and NDEF технологий. Есть информация для чтения с чипа, и я пытаюсь получить доступ к memory, но большинство из commands Я использую для связи с TAG отвечает [110, 0] байтами. Я не мог найти, что это значит, некоторые из них отвечают [109, 0] или [106, -122]. Чаще всего [110, 0]. Эти данные хранятся за пределами стандартного контента NDEF.IsoDep.transceive (команда) отвечает с [110, 0] байтами?

Я не мог найти информацию об этом виде ответа, возможно, это своего рода ошибка. Может быть, я неправильно IsoDep протокола, но это выглядит довольно просто:

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 
IsoDep iso = IsoDep.get(tag); 

byte[] mMaster = iso.transceive(CommandFactory.GET_MASTER_APP); 
byte[] mApplciation = iso 
       .transceive(CommandFactory.SELECT_APPLICATION); 

AFAIK это «без гражданства» протокол, так что нет необходимости посылать команды в определенном порядке?

Любые идеи?

ответ

2

Если Android показывает технологию тегов NfcA + IsoDep + Ndef для тега, это означает, что тег является тегом NFC Forum Type 4. Обратите внимание, что связь с тегами Type 4 не является апатридом. Тег содержит структуру файловой системы в соответствии с ISO/IEC 7816-4, поэтому вам сначала нужно будет выбрать приложение тега NDEF («каталог»), затем - внутри этого приложения - выберите определенный файл (например, возможность контейнер или файл данных NDEF), а затем вы можете выполнять операции чтения/записи в этом файле.

Что вы видите в ответ на вашу команду APDU (APDUs - это единицы данных протокола приложений, определенные в ISO/IEC 7816-4, и это то, что вы говорите с тегами Type 4 над ISO-DEP) являются ответными APDU, которые состоят из статуса слово. В вашем случае слова статусные

  • [110, 0] или беззнаковое шестнадцатеричное 6E 00: класс команд не поддерживается
  • [109, 0] или беззнаковое шестнадцатеричное 6D 00: код команды не поддерживается
  • [ 106, -112] или в шестнадцатеричном формате без знака 6A 90: Это странный (и нестандартный) код состояния. Типичным кодом будет 6A 82 ([106, -126]), что означает, что файл или приложение не найдены.
Смежные вопросы