Introducción al emulador Open NFC

Me gustaría comenzar con el desarrollo de aplicaciones NFC para Android. He empezado con android recientemente y estoy encontrando una plataforma muy interesante para desarrollar. Antes de salir e invertir en un dispositivo Android que tiene un lector de NFC y etiquetas de compra, me gustaría tener una idea de cómo uno realmente escribe código para ellos.

Encontré el Open NFC Android emulador y parece ser lo que estoy buscando. He descargado: 1. El Open NFC para Android 2. El Open NFC core Edition

Después de crear un avd que para Open NFC, seguí las instrucciones.

Ahora el problema que enfrento es que en el emulador, cuando voy a los ajustes sin hilos y entonces permito NFC, dice que había un error. He intentado fijar el IP a 10.0.2.2 y también el IP que consigo del ipconfig pero en vano. No hay registro que pueda ver. También he intentado inhabilitar el cortafuego completamente mientras que lo funcionaba de modo que no consiga bloqueado accidentalmente.

Como una nota lateral, me gustaría mencionar que tengo el Connection Manager Started antes de iniciar el emulador.

¿Alguien tiene experiencia con Open NFC para Android, Si alguien me puede señalar a un mejor conjunto de instrucciones sería más agradecido o Si alguien podría sugerir otro simulador por el que puedo probar algunos código de ejemplo y obtener una mejor comprensión de NFC .

La salida del adb logcat es

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 

Tengo el mismo error cuando cambio el IP a la obtenida con 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: Gracias por el enlace a TCP Echo Server. Tengo mi pila OpenNFC para trabajar después de ejecutar el servidor de eco. Para que otros usuarios puedan beneficiarse de este ejercicio, he aquí un resumen de qué hacer para configurar la pila OpenNFC con el simulador NFCC (controlador NFC).

– La pila (con el simulador NFCC) sólo se admite en host Windows , ya que tanto el Centro de conexión como el simulador NFCC son aplicaciones de Windows.

–Necesito descargar los 3 paquetes :

  1. OpenNFC Android SDK addon
  2. OpenNFC core Edition , que cuenta con las aplicaciones del Centro de conexión y el simulador NFCC.
  3. El servidor de eco: EchoTool

–Instale el complemento de SDK y cree un AVD utilizando el Addon de SDK.

–start Connection Center (ejecutar "Connection Center.exe") y configurarlo para aceptar conexiones de cliente de otras máquinas.

–start NFCC simulador (ejecute "NfcSimulator.exe").

–start echo server (en el puerto 7), usando el cmd: echotool / p tcp / s 7

–start emulador de Android con el AVD acaba de crear.

– desde el emulador, seleccione Ajustes-> Conexiones inalámbricas y redes-> Ajustes NFC

–enter 10.0.2.2 en Centro de conexión IP

–seleccione Simulator para la implementación de NFC HAL

– Ahora haga clic en el NFC alternar (casilla de verificación) para iniciar la pila NFC!

He tenido problemas similares. Resulta que el Centro de conexión mencionado en el documento es una aplicación de Windows. Esto es del desarrollador de Inside: "El Centro de conexión es una herramienta lanzada en forma binaria para Windows, lo puedes encontrar, así como el simulador NFC, en la edición Core de Open NFC". Tengo mi entorno de compilación (Eclipse) ejecutándose en un host de Ubuntu. Así que estoy fuera de suerte con este. ¿También estás en un host Linux?

El centro de conexión debe estar funcionando para que el simulador del controlador NFC funcione, como se indica en el documento: "Antes de iniciar AVD, el centro de conexión debe ser lanzado y configurado para aceptar conexiones de cliente de otras máquinas".

De todos modos, después de disparar fuera de logcat y está claro de los mensajes de depuración que el Simulador no puede conectarse al centro de conexión. La siguiente salida logcat se recopila después de hacer clic en el botón de alternar NFC:

 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 

El desarrollador dijo que para que esto funcione en un host Linux "puede que tenga que configurar un servidor TCP echo en paralelo con el Centro de conexión en la máquina para responder en el puerto 7". No estoy seguro de cómo se hace y lo que se requiere.

Le sugiero que pruebe el mismo conjunto en un host de Windows, que es lo que voy a hacer.

Con las nuevas versiones de NFC Core, SDK, Connection Center, emulador NFC y nueva imagen de Android Add-on es posible. He probado y funciona … Sólo chek fuera de la página del proyecto Open NFC y descargar las nuevas versiones de estas cosas.

  • HF-RFID vs. NFC - ¿Puede un teléfono móvil con capacidad NFC leer etiquetas RFID de alta frecuencia?
  • Posibilidad de lanzamiento de falsos NFC (Near Field Communication)
  • ¿Existe una API NFC para el Smartwatch 3 (SWR50)
  • ¿Es posible iniciar una aplicación cuando se escanea una etiqueta NFC?
  • Instalar una aplicación ubicada en GooglePlay desde NFC
  • Android NFC transceive () con tecnología NFCF (Sony Felica)
  • Utilice el emparejamiento seguro simple de Jelly Bean (Bluetooth) para emparejarlo con NFC
  • Tutorial NFC para Android que no sea API demo
  • Iniciar una actividad específica al escanear etiquetas NFC
  • "Nueva etiqueta recopilada" en lugar de leer etiquetas de aplicación - NFC android
  • ¿Cuál es la diferencia entre enableReaderMode y enableForegroundDispatch?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.