Я реализую приложение Android для устройств NFC. Я использую тег Ndef, NfcV и NdefFormatable с двумя разными устройствами Android: Samsung Galaxy SII plus и Samsung Galaxy SII, каждый из которых работает под управлением Android версии 4.1.2. SII plus может видеть тег, читать и записывать его без проблем, но SIII не может видеть технологию Ndef, он видит только технологию NfcV. Есть идеи, почему? Проблема возникает в любом продаваемом приложении, как и в моем, и независимо от того, имеет ли тег фактическое сообщение NDEF или нет.
Невидимое сообщение Ndef
Ответы (1)
Теги NfcV не являются официальными тегами форума NFC. Поэтому не существует стандартизированного способа хранения сообщения NDEF в метке. Также не все теги NfcV работают одинаково. В зависимости от конкретного тега вы должны отправлять в тег разные команды, если хотите низкоуровнево прочитать или записать тег. Архитектура памяти между разными тегами также различается.
На практике коммуникационные библиотеки NFC решают эту проблему, имея список некоторых общих тегов NfcV вместе с инструкциями по их чтению/записи. Этот список отличается для разных телефонов и версий Android.
Эта несовместимость не исчезнет в ближайшее время. NfcV может стать частью стандарта NFC Forum, но сейчас это вам не поможет. Есть два способа справиться с этой проблемой:
Не используйте NfcV, если вам нужен тип тега, который может надежно обмениваться данными между всеми устройствами NFC. Для этого созданы NFC Forum Type1–Type4. Поддержка чтения/записи NfcV даже не гарантируется.
Если вы привязаны к этому конкретному тегу NFC по причинам проекта, вы можете игнорировать встроенный код чтения NDEF и сделать это самостоятельно. Для этого вам понадобится таблица данных тега и отправка необработанных команд с помощью tag.transceive. Это немного больше работы, но это не настолько сложно.