Эмуляция тегов NFC для виртуального устройства Android (AVD)

Есть ли способ разработки приложений чтения/записи тегов NFC без телефона с поддержкой NFC? Есть ли способ создать AVD, который поддерживает NFC? Я искал и нашел Open NFC, но я не могу найти много информации об этом сейчас. Это уже устарело? Есть ли другой способ его достижения?

Ответы

Ответ 1

Google никогда не реализовал поддержку NFC в AVD. Таким образом, официальная поддержка NFC в эмуляторе устройств Android отсутствует.

Еще в ранние дни NFC на Android, Inside Secure разработала и опубликовала стек NFC "Open NFC". Несмотря на свое название, Open NFC был не таким открытым, как предполагалось в его названии, и в основном предназначался для внутреннего диапазона интерфейсов NFC. Хорошим побочным эффектом этого NFC-стека была его интеграция с эмулятором, которая напоминала возможности поддержки виртуальных устройств Nokia NFC для их телефонов серии S40. Публичные файлы для проекта Open NFC по-прежнему доступны на SourceForge: здесь. Однако проект давно заброшен (вероятно, из-за продажи технологии NFC для Intel).

Последняя версия Open NFC нацелена на Android 4.2.1 (работала с Android 4.2.2), поэтому, если бы эта платформа была приемлема для вас, вы могли бы попытаться настроить эту среду AVD. Пошаговое руководство доступно здесь: Open NFC Simulator Usage (также см. Здесь отсутствующие компоненты: Не удалось загрузить open-nfc-аддон на платформе Android).

Стек NFC на новых версиях Android значительно изменился (в настоящее время весь стек NFC Android основан на libnfc-nci, который первоначально нацелился на контроллеры Broadcom NFC и реализовал спецификацию интерфейса NFC Forum NFC Controller). Как следствие, реализация Open NFC больше не совместима с более поздними версиями Android.

Обратите внимание, что по-прежнему существуют способы сделать хотя бы ограниченное тестирование с помощью кода (например, полезно для модульных тестов), введя намерения NFC. Увидеть

но обратите внимание, что эти методы основаны на интернате стека Android NFC, и вам, возможно, придется пройти через код для любой версии Android, на которую вы нацеливаете, чтобы высмеять правильную информацию.