На этот вопрос очень сложно ответить, не зная, какой это тип карты и какой спецификации NF C она соответствует.
Первый шаг к пониманию этого - получить таблицу данных для NF C открытка. Возможно, стоит использовать приложение Android, такое как nxpinfo, чтобы попытаться определить тип чипа и тип спецификации NF C на карте, что затем может привести к использованию спецификации datasheet / nf c.
Ответы
2) Поддержка NDEF на карте определяется тем, что в большинстве спецификаций называется «Контейнером возможностей». Он может храниться по указанному адресу блока c или другим способом его чтения.
Если не существует «контейнера возможностей», который можно прочитать определенным методом для используемой спецификации NF C, то карта не будет считаться поддерживающей NDEF и форматируемой.
Возможно, это Пользовательская карта и «Контейнер возможностей» также были повреждены.
1) Неизвестно без дополнительных сведений о типе карты, но другая причина может заключаться в том, что 2 устройства чтения / записи пытаются получить доступ к карте одновременно время (один с аппаратного устройства и один из приложения). Нормальная запись / чтение NDEF не должно вызывать проблем, но может быть аппаратное устройство использует какой-то специальный метод доступа к карте.
Надеюсь, когда вы используете приложение для доступа к карте, оборудование отключено, поэтому это невозможно для этого типа CLA sh.
Если нет, можно сделать простую катушку провода, подключенного к светодиоду, чтобы сделать базовый детектор поля c NF C, чтобы проверить, периодически ли делать с картой вещи, которые могут вызвать cla sh.
3) Снова трудно ответить, зная больше о карте, НО может быть возможно переписать то, что, вероятно, является пользовательским типом карты «Контейнер возможностей» на низком уровне, чтобы сделать его снова форматируемым, если это было причиной проблемы.
Обновление
Как представляется, это NF C Микросхема типа 4, но также имеет интерфейс I2 C. В нем также есть несколько расширенных нестандартных команд
Вопрос
Я думаю, что оборудование подключено через i2 C?
Чтение SPE c похоже, что на карте есть 2 уровня безопасности, которые не входят в NDEF spe c (я не уверен, что приложение nxpinfo поймет значения, но может их показать).
Итак, это Возможно, файл NDEF защищен паролем или доступен только для чтения.
Если файл NDEF имеет пароль записи, обычное форматирование NDEF не сможет его отформатировать.
Вам потребуется нестандартный Verify command
и пароль для авторизации перед форматированием.
Если файл NDEF был навсегда заблокирован (только для чтения), то только соединение I2 C может разблокировать файл NDEF. Карту в этом состоянии нельзя отформатировать через какое-либо приложение Android.
Следующим шагом является обновление вопроса шестнадцатеричным содержимым контейнера возможностей, чтобы можно было определить уровень безопасности.
Обновление 2
Хорошо, значит, карта не защищена паролем и не заблокирована, потому что последние 2 байта файла CC равны 00
И как Адар sh более качественное ведение журнала может помочь определить причину, надеюсь, ваши методы transceive
проверяют массив байтов ответа из IsoDep.tranceive и регистрируют все неуспешные коды, а также любые исключения, такие как TagLostException
, IOException
, et c, также
Хотя вы утверждаете, что повреждение может быть вызвано выходом телефона за пределы диапазона, в таблице данных также показано, что соединение I2 C может иметь приоритет над соединением RF с телефона, убивая ВЧ-соединения это также может вызвать повреждение данных NDEF.
Если РЧ-соединение было прервано соединением I2 C, то телефон, вероятно, не сможет ничего сделать с РЧ-соединением, пока оно не будет удалено из зоны действия и снова не возвращено.
На данный момент у меня нет никаких других мыслей, кроме как проверить двоичное содержимое файла NDEF самостоятельно с помощью низкоуровневого двоичного чтения на поврежденной и неповрежденной карте. (Приложение Taginfo могло бы сделать это с помощью функции полного сканирования)
Но, поскольку эта карта updates
карты (может писать в начале карты или в любом смещении), я бы ожидал Android всегда начинать с начала при записи сообщения NDEF, поэтому не имеет значения, были ли байтовые маркеры TLV повреждены в результате усеченной записи для нового writeNdefMessage
. Повреждение TLV может помешать Android читать сообщения NDEF из файла. (Необходимо проверить Android исходный код ОС, чтобы подтвердить, что она делает)