Начало работы с Open NFC emulator

Я хотел бы начать работу с разработкой приложений NFC для android. Я недавно начал с android, и я нахожу его очень интересной платформой для разработки. Прежде чем я выйду и инвестирую в Android-устройство со встроенным считывателем NFC и тегами покупки, я хотел бы почувствовать, как на самом деле пишется код для них.

нашел открыть NFC Android эмулятор и, похоже, это то, что я ищу. Я скачал : 1. Открытый NFC для Андроид 2. Открытое NFC core Edition

после создания avd, который для Open NFC, я следовал инструкциям.

теперь проблема, с которой я сталкиваюсь, заключается в том, что в эмуляторе, когда я иду в настройки беспроводной связи, а затем включаю NFC, он говорит, что произошла ошибка. Я попытался установить IP на 10.0.2.2, а также IP, который я получаю от ipconfig, но безрезультатно. Я не вижу никакого бревна. Также я попытался полностью отключить брандмауэр во время его запуска, чтобы он не блокируется случайно.

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

у кого-нибудь есть опыт работы с Open NFC для Android, Если кто-то может указать мне лучший набор инструкций, я был бы очень благодарен, если бы кто-то мог предложить другой симулятор, с помощью которого я могу попробовать пример кода и получить лучшее представление о NFC.

вывод АБР logcat-это

W/KeyCharacterMap(  165): No keyboard for id 0
W/KeyCharacterMap(  165): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
D/NfcSettings(  165): onPreferenceChange: Setting NFC key: nfc_cc_ip
D/NfcSettings(  165): onPreferenceChange: Setting NFC value: 10.0.2.2
D/NfcSettings(  165): onPreferenceChange: Setting System NFC NFC_CC_IP: 10.0.2.2
D/NfcSettings(  165): onPreferenceChange: Setting NFC key: nfc_hal_mode_list
D/NfcSettings(  165): onPreferenceChange: Setting NFC value: 1
D/NfcSettings(  165): onPreferenceChange: Setting NFC mPreferenceNfcHalMode: SIMULATOR:1
D/NfcSettings(  165): onPreferenceChange: Setting System NFC NFC_HAL_MODE: 1
W/InputManagerService(   68): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@406df430
D/NfcEnabler(  165): Setting NFC enabled state to: true
D/OpenNFCService(  250): Enabling NFC.  previous =false
D/OpenNFCService(  250): mIsNfcEnabled NFC =false
D/OpenNFCService(  250): _enable =true
D/OpenNFCService(  250): IOpenNFCService:setNFCEnabled(true)
D/OpenNFCService(  250): Invalid IP address
D/OpenNFCService(  250): can't create configuration !
D/OpenNFCService(  250): updateNfcOnSetting: false
D/OpenNFCService(  250): NFC success of _enabletrue) is false
D/OpenNFCService(  250): $$$NFC$$$ Will connect ! $$$NFC$$$
W/NfcEnabler(  165): Error setting NFC enabled state to true

Я получаю ту же ошибку, когда я меняю IP на тот, который получен с ipconfig.

D/NfcSettings(  165): onPreferenceChange: Setting NFC key: nfc_cc_ip
D/NfcSettings(  165): onPreferenceChange: Setting NFC value: 114.31.179.86
D/NfcSettings(  165): onPreferenceChange: Setting System NFC NFC_CC_IP: 114.31.179.86
D/NfcEnabler(  165): Setting NFC enabled state to: true
D/OpenNFCService(  250): Enabling NFC.  previous =false
D/OpenNFCService(  250): mIsNfcEnabled NFC =false
D/OpenNFCService(  250): _enable =true
D/OpenNFCService(  250): IOpenNFCService:setNFCEnabled(true)
D/OpenNFCService(  250): Invalid IP address
D/OpenNFCService(  250): can't create configuration !
D/OpenNFCService(  250): updateNfcOnSetting: false
D/OpenNFCService(  250): NFC success of _enabletrue) is false
D/OpenNFCService(  250): $$$NFC$$$ Will connect ! $$$NFC$$$
W/NfcEnabler(  165): Error setting NFC enabled state to true

3 ответов


@nikhil: Спасибо за ссылку на TCP Echo Server. Я получил свой стек OpenNFC для работы после запуска сервера echo. Чтобы другие пользователи могли воспользоваться этим упражнением, вот краткое описание того, что нужно сделать, чтобы настроить стек OpenNFC с помощью симулятора NFC controller (NFCC).

--стек (с симулятором NFCC) поддерживается на только хост Windows, поскольку и Центр подключения, и симулятор NFCC являются приложениями Windows.

--нужно скачать все 3 упаковки:

  1. opennfc Android SDK аддон
  2. opennfc core Edition, который имеет центр подключения и приложения nfcc simulator.
  3. Эхо-сервера: EchoTool

--установите аддон SDK и создайте AVD с помощью аддона SDK.

--start Connection Center (запустить "Центр подключения.exe") и настроить его для приема клиентских подключений от других машины.

--запустить nfcc simulator (запустить " NfcSimulator.исполняемый.)"

--запустите echo server (на Порту 7), используя cmd: echotool /p tcp /s 7

--запустите эмулятор Android, используя только что созданный AVD.

--в эмуляторе выберите Настройки->Беспроводные сети - >настройки NFC

--введите 10.0.2.2 в IP Connection Center

--выберите симулятор для реализации NFC HAL

--теперь нажмите переключатель NFC (флажок) чтобы запустить стек NFC!


Я испытал аналогичные проблемы. Оказывается, центр подключения, упомянутый в документе, является приложением Windows. Это от разработчика внутри: "центр подключения-это инструмент, выпущенный в двоичной форме для Windows. Вы можете найти его, а также симулятор NFC, в основной версии Open NFC". У меня есть моя среда сборки (Eclipse), работающая на хосте Ubuntu. Так что с этим мне не повезло. Вы также на хосте Linux?

центр подключения должен быть запущен для работы симулятора контроллера NFC, как указано в документе: "Перед запуском AVD, центр подключения должен быть запущен и настроен для принятия клиентские подключения с других машин".

в любом случае, после запуска logcat и из сообщений отладки ясно, что симулятор не может подключиться к центру подключения. После нажатия кнопки переключения NFC собираются следующие выходные данные logcat:

root@android:/ # logcat
D/NfcEnabler(  170): Setting NFC enabled state to: true
D/OpenNFCService(  273): Enabling NFC.  previous =false
D/OpenNFCService(  273): mIsNfcEnabled NFC =false
D/OpenNFCService(  273): _enable =true
D/OpenNFCService(  273): IOpenNFCService:setNFCEnabled(true)
D/NFCService(  273): Java_org_opennfc_service_Interface_OpenNFCServerStart
D/NFCService(  273): Java_org_opennfc_service_Interface_OpenNFCServerStart : Simulator has been selected
D/Microread(  273): static_nfcc_device_open
D/Microread(  273): static_nfcc_device_get_binding
E/SIMULATOR(  273): 00071 ERROR HAL   : GetNALBinding
E/CCCLIENT(  273): static_CCClientCreateSocket / connect() failed 111 
E/SIMULATOR(  273): 00072 WARN  HAL   : =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
E/SIMULATOR(  273): 
E/SIMULATOR(  273): 00073 WARN  HAL   : CANNOT CONNECT TO THE CONNECTION CENTER.
E/SIMULATOR(  273): 
E/SIMULATOR(  273): 00074 WARN  HAL   : SYMPTOM: Impossible to connect to the Connection Center
E/SIMULATOR(  273): 
E/SIMULATOR(  273): 00075 WARN  HAL   : DIAGNOSTIC: Connection Center not started, firewall, ...
E/SIMULATOR(  273):            Check Connection Center and your network configuration.
E/SIMULATOR(  273): 
D/SIMULATOR(  273): 00076 TRACE HAL   : =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
D/SIMULATOR(  273): 
E/SIMULATOR(  273): 00077 ERROR SIM   : static_NALBindingCreateFunction: Cannot create the com port
E/OPENNFC_SERVER(  273): 00031 ERROR NFC_HAL PNALServiceCreate: Error returned by the initialization of the NFC HAL
E/OPENNFC_SERVER(  273): 00032 ERROR EVENT : static_PContextCreate: Cannot create the NFC HAL Service
E/OPENNFC_SERVER(  273): 00033 ERROR STARTUP  BootNFCC : PDriverCreate() failed
E/NFCService(  273): Java_org_opennfc_service_Interface_OpenNFCServerStart: StartNFCC failed
E/OpenNFCService(  273): OpenNFCServerStart failed
D/OpenNFCService(  273): updateNfcOnSetting: false
D/OpenNFCService(  273): NFC success of _enabletrue) is false
D/OpenNFCService(  273): $$$NFC$$$ Will connect ! $$$NFC$$$
W/NfcEnabler(  170): Error setting NFC enabled state to true

разработчик сказал, что для этого нужно работать на хосте Linux "возможно, вам придется настроить сервер TCP echo параллельно с Центром подключения на машине, чтобы ответить на порт 7". Я не знаю, как это делается и что требуется.

Я предлагаю вам попробовать ту же настройку на хосте Windows, что и я собираюсь сделать.


с новыми версиями NFC Core, SDK, Connection Center, NFC эмулятор и новый образ Android дополнения возможно. Я проверил и это работает... Просто проверьте страницу открытого проекта NFC и загрузите новые версии этих вещей.