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 I go out and invest in an Android device that has a built in NFC reader and purchase tags, I would like to get a feel of how one actually writes code for them.
I found the Open NFC Android emulator and it appears to be what I'm looking for. I have downloaded : 1. The Open NFC for Android 2. The Open NFC core Edition
After creating an avd that for Open NFC, I followed the instructions.
Now the problem that I face is that in the emulator, when I go to the Wireless Settings and then I enable NFC, It says that there was an error. I have tried setting the IP to 10.0.2.2 and also the IP that I get from ipconfig but to no avail. There's no log that I can see. Also I have tried to disable the firewall completely while running it so that it doesn't get blocked accidentally.
As a side note, I would like to mention that I have the Connection Manager Started before I launch the emulator.
Does anybody have experience with Open NFC for Android, If somebody can point me to a better set of instructions I'd be most grateful alternatively If someone could suggest another simulator by which I can try out some sample code and get a better understanding about NFC.
The output of the adb logcat is
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 error when I change the IP to the one obtained with 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
@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!