Подтвердить что ты не робот

Начало работы с открытым эмулятором NFC

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

Я нашел Open NFC Android emulator, и, похоже, это то, что я ищу. Я скачал: 1. Open NFC для Android 2. Open NFC core Edition

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

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

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

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

Результат логарифма adb

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: [email protected]
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
4b9b3361

Ответ 1

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

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

- необходимо загрузить все 3 пакета:

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

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

- запустить симулятор NFCC (запустить "NfcSimulator.exe" ).

- запустить эхо-сервер (на порту 7), используя команду cmd: echotool/p tcp/s 7

- запустить эмулятор Android с помощью только что созданного AVD.

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

- введите 10.0.2.2 в центр IP-соединения

- выберите Simulator для реализации NFC HAL

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

Ответ 2

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

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

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

[email protected]:/ # 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 параллельно с центром подключения на компьютере для ответа на порт 7". Я не уверен, как это делается и что требуется.

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

Ответ 3

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