2013-03-26 6 views
1

Я реализую приложение для Android для устройств NFC. Я использую теги Ndef, NfcV и NdefFormatable с двумя различными устройствами Android: Samsung Galaxy SII plus и Samsung Galaxy SII, каждый из которых запускает версию Android 4.1.2. SII plus может видеть тег, читать его и писать без проблем, но SIII не может видеть технологию Ndef, она видит только технологию NfcV. Любая идея почему? Проблема возникает в любом заявленном на рынке приложении, как на моем, и независимо от тега, имеющего фактическое сообщение NDEF, или нет.Невидимое сообщение Ndef

+0

Можете ли вы определить чип в теге с помощью приложения, такого как TagInfo? Это может дать ключ к тому, что происходит. –

+0

Информация о теге показывает тип V для технологии RF, тип тега EM4x3x с целевыми классами технологий: NfcV и Ndef. Тег NDEF имеет неизвестный тип. – Jinbonka

+0

Разница кажется похожей на то, что я наблюдал с телефонами Galaxy Nexus и Nexus 4. Nexus 4 содержит новый стековый программный стек NFC, который поддерживает NDEF для различных типов тегов NfcV, а Galaxy Nexus поддерживает только теги ICODE NfcV. Galaxy S3 имеет тот же пакет программного обеспечения NFC, что и Galaxy Nexus. Похоже, что S2 + имеет тот же уровень, что и Nexus 4 (что имеет смысл w.r.t. Даты появления этих устройств на рынке). –

ответ

1

Теги NfcV не являются официальными тегами форума NFC. Поэтому нет стандартизированного способа, как сообщение NDEF должно храниться в теге. Также не все теги NfcV работают аналогичным образом. В зависимости от конкретного тега вы должны отправлять разные теги тегам, если вы хотите читать или записывать тег на низком уровне. Архитектура памяти между различными тегами также отличается.

На практике библиотеки коммуникаций NFC справляются с проблемой, имея список некоторых распространенных тегов NfcV, а также инструкции по их чтению/записи. Этот список отличается между разными телефонами и версией Android.

Эта несовместимость не исчезнет в краткосрочной перспективе. NfcV может стать частью стандарта NFC Forum, но это не поможет вам сейчас. Есть два способа, как справиться с этой проблемой:

  1. Не используйте NfcV, если вам нужен тип тега, который может достоверные данные для обмена информацией между всеми NFC устройствами. Для этого созданы NFC Forum Type1 to Type4. Гарантийные возможности чтения/записи NfcV даже не гарантируются.

  2. Если вы связаны с этим конкретным тегом NFC из-за причин проекта, вы можете игнорировать встроенный код чтения NDEF и делать это самостоятельно. Для этого вам понадобится таблица тегов и отправьте необработанные команды с помощью tag.transceive. Это немного больше работы, но это не , что сложно.

+0

Ty для вашего ответа, знаете ли вы, существует ли такой список телефонов и поддерживаемых библиотек? – Jinbonka

+0

Теперь Nexus4 обеспечивает поддержку хранилища NDEF на теге NFC-V –

Смежные вопросы