I would like to get started with developing NFC apps for android. I have started with android recently and I\'m finding it a very interesting platform to develop for. Before
@nikhil: Thanks for the link to TCP Echo Server. I got my OpenNFC stack to work after running the echo server. So that other users can benefit from this exercise, here's a summary of what to do to set up the OpenNFC stack with the NFC controller (NFCC) simulator.
--The stack (with NFCC simulator) is supported on Windows host only, since both the Connection Center and the NFCC simulator are Windows apps.
--Need to download all 3 packages:
--Install the SDK addon, and create an AVD using the SDK Addon.
--start Connection Center (run "Connection Center.exe") and config it to accept client connections from other machines.
--start NFCC simulator (run "NfcSimulator.exe").
--start echo server (on port 7), using the cmd: echotool /p tcp /s 7
--start Android emulator using the AVD just created.
--from the emulator, select Settings->Wireless & networks->NFC settings
--enter 10.0.2.2 in IP Connection Center
--select Simulator for NFC HAL implementation
--now click the NFC toggle (check box) to start the NFC stack!
with the new versions of NFC Core, SDK, Connection Center, NFC Emulator and new image of Android Add-on is possible. I have tested and it works... Just chek out the page of the Open NFC Project and download the new versions of these things.
I've experienced similar issues. Turns out that the Connection Center mentioned in the doc is a Windows app. This is from the developer at Inside: "The Connection Center is a tool released in binary form for Windows. You can find it, as well as the NFC simulator, in the Core Edition of Open NFC". I have my build environment (Eclipse) running on a Ubuntu host. So I am out of luck with this one. Are you also on a Linux host?
The Connection Center needs to be running for the NFC controller simulator to work, as indicated in the doc: "Prior launching the AVD, the Connection center must be launched and configured to accept client connections from other machines".
Anyways, after firing off logcat and it is clear from the debug messages that the Simulator cannot connect to the connection center. The following logcat output are collected after the NFC toggle button is clicked:
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
The developer said that for this to work on a Linux host "you might have to set up a TCP echo server in parallel to the Connection Center on the machine to answer on port 7". I am not sure how it is done and what is required.
I suggest that you try the same set up on a Windows host, which is what I am going to do.