Pierwsze kroki z Open NFC emulator

Chciałbym zacząć od tworzenia aplikacji NFC na Androida. Niedawno zacząłem z Androidem i uważam, że jest to bardzo ciekawa platforma do rozwoju. Zanim wyjdę i zainwestuję w urządzenie z Androidem, które ma wbudowany czytnik NFC i kupię tagi, chciałbym poczuć, jak faktycznie pisze się dla nich Kod.

Znalazłem Open NFC Android emulator i wydaje się być to, czego szukam. Pobrałem : 1. Open NFC dla Androida 2. Na Open NFC core Edition

Po utworzeniu avd, który Dla Open NFC, postępowałem zgodnie z instrukcjami.

Teraz problem, który mam do czynienia jest to, że w emulatorze, kiedy przejść do ustawień bezprzewodowych, a następnie włączyć NFC, mówi, że wystąpił błąd. Próbowałem ustawić IP na 10.0.2.2, a także IP, które dostaję z ipconfig, ale bezskutecznie. Nie widzę żadnego dziennika. Próbowałem również całkowicie wyłączyć zaporę podczas jej uruchamiania, aby nie została zablokowana przypadkowo.

Na marginesie chciałbym wspomnieć, że mam uruchomiony Menedżer połączeń przed uruchomieniem emulatora.

Czy ktoś ma doświadczenie z Open NFC dla Androida, jeśli ktoś może wskazać mi lepszy zestaw instrukcji byłbym bardzo wdzięczny alternatywnie, jeśli ktoś mógłby zasugerować inny symulator, za pomocą którego mogę wypróbować jakiś przykładowy kod i uzyskać lepsze zrozumienie o NFC.

Wyjście ADB logcat to

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

I get the same błąd podczas zmiany adresu IP na ten uzyskany za pomocą 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
Author: Joachim Sauer, 2011-07-20

3 answers

@ nikhil: Dzięki za link do serwera TCP Echo. Mam mój stos OpenNFC do pracy po uruchomieniu serwera echo. Aby inni użytkownicy mogli skorzystać z tego ćwiczenia, oto podsumowanie, co zrobić, aby skonfigurować stos OpenNFC za pomocą symulatora kontrolera NFC (nfcc).

--stos (z nfcc simulator) jest obsługiwany tylko na Windows host only , ponieważ zarówno Centrum połączeń, jak i symulator nfcc są aplikacjami Windows.

-- trzeba pobrać wszystkie 3 Pakiety :

  1. OpenNFC Android SDK addon
  2. opennfc Core Edition , która ma centrum połączeń i aplikacje symulatora nfcc.
  3. serwer echo: EchoTool

--zainstaluj dodatek SDK i utwórz AVD za pomocą dodatku SDK.

-- start Connection Center (Uruchom " Connection Center.exe") i skonfigurować go do przyjmowania połączeń klientów z innych maszyn.

-- start nfcc simulator (run "NfcSimulator.exe").

-- uruchom serwer echo (na porcie 7), używając cmd: echotool /p tcp /s 7

-- Uruchom emulator Androida przy użyciu właśnie utworzonego AVD.

-- z emulatora wybierz Ustawienia->Wireless & networks - > NFC settings

--wprowadź 10.0.2.2 w IP Connection Center

--select Simulator for NFC hal implementation

-- teraz kliknij przełącznik NFC (pole wyboru), aby rozpocząć stos NFC!

 13
Author: wyt168,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-04 21:25:32

Doświadczyłem podobnych problemów. Okazuje się, że Centrum połączeń wymienione w dokumencie jest aplikacją Windows. To od dewelopera w Inside: "Centrum połączeń jest narzędziem wydanym w formie binarnej dla systemu Windows. Można go znaleźć, jak również symulator NFC, w podstawowej edycji Open NFC". Mam moje środowisko kompilacji (Eclipse) uruchomione na hostu Ubuntu. Więc nie mam szczęścia z tym. Czy korzystasz również z hosta Linuksa?

Centrum połączeń musi być uruchomione dla NFC symulator kontrolera do pracy, jak wskazano w doc: "Przed uruchomieniem AVD Centrum połączeń musi zostać uruchomione i skonfigurowane tak, aby akceptowało połączenia klientów z innych maszyn".

Tak czy inaczej, po odpaleniu logcat i z komunikatów debugowania wynika, że symulator nie może połączyć się z centrum połączeń. Po kliknięciu przycisku przełączania NFC pobierane są następujące dane 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

Deweloper powiedział, że aby to działało na Linuksie " możesz trzeba skonfigurować serwer TCP echo równolegle do centrum połączenia na maszynie, aby odpowiedzieć na porcie 7". Nie jestem pewien, jak to się robi i co jest wymagane.

Proponuję wypróbować tę samą konfigurację na Hostie Windows, co zamierzam zrobić.

 1
Author: wyt168,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-21 20:30:39

Z nowymi wersjami NFC Core, SDK, Connection Center, Emulator NFC i nowy obraz Android dodatek jest możliwe. Przetestowałem i działa... Wystarczy przejrzeć stronę projektu Open NFC i pobrać nowe wersje tych rzeczy.

 1
Author: Ulises,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-03 13:57:28