2012-05-30 13 views
10

Me gustaría implementar una comunicación NFC entre mi aplicación Android y un quiosco habilitado para NFC. He leído el documentation y entiendo que empujan los datos se puede hacer de 2 maneras:¿Es posible usar Android Beam entre un dispositivo Android y otro dispositivo NFC?

  • Via NDEF primer plano para empujar nivel de la API 10 al 13
  • a través de Android Beam desde el nivel del API 14

Creo que puedo hacer lo que quiero a través de la primera solución, pero me gustaría saber si es posible usar Android Beam entre un dispositivo Android y un dispositivo que no sea android.

Gracias por su ayuda,

Romain

Respuesta

11

Aunque las llamadas a funciones entre API 10 a 13 y APi 14 difieren, el protocolo subyacente real es casi el mismo. En ambos casos, la comunicación entre pares NFC se realiza mediante LLCP. En API 10 a 13, el protocolo de transferencia de datos real utilizado es NPP. En API 14, SNEP se agrega a eso, pero volverá a caer en NPP cuando el otro dispositivo no sea compatible con SNEP.

Así que cuando su dispositivo no Android implementa SNEP y/o NPP sobre LLCP, puede transferir datos y recibir datos de un dispositivo con Android NFC. Existen varias implementaciones de SNEP y LLCP para dispositivos lectores de tarjetas, véase por ejemplo https://github.com/grundid/nfctools.

+0

fácil de entender y muy completo, ¡gracias! –

4

Miré a esto para un proyecto de la universidad.

Primero, por favor, no hay que tener en cuenta que hay 3 modos de funcionamiento NFC {Lectura/escritura de tarjetas, emulación de etiquetas y comunicación P2P}. Android admite lectura/escritura de tarjetas y comunicación P2P.

Para comunicarse con un dispositivo que no es Android a través de P2P es bastante complejo, ya que debe usar el NPP (protocolo push Ndef) integrado en LLCP (protocolo de control de enlace lógico). Su plataforma no androide necesitará implementar el LLCP para poder comunicarse. No estoy seguro de si esto ya se ha hecho para NFC. Puede encontrar información sobre la implementación de NPP/LLCP here

El siguiente enfoque es utilizar el modo de lectura/escritura de la tarjeta para comunicarse con el dispositivo que no es Android y que se ejecuta en modo de emulación de tarjeta. De esta forma, puede enviar APDU a la etiqueta emulada para enviar y recibir datos. Hice este enfoque a la inversa utilizando BlackBerry para mi proyecto. BlackBerry admite la emulación de tarjetas, así que usé el dispositivo que no es Android (ACR122U) para enviar APDU a BlackBerry.

Si bien el primer enfoque (P2P) es, obviamente, el camino ideal, el segundo podría ser más fácil de implementar. Funcionó bastante bien para mí en mi aplicación de todos modos, creé un sistema que acepta pagos a través de NFC.

Tenga en cuenta que el ACR122U no tiene una buena compatibilidad con la Emulación de etiquetas NFC, por lo que no es adecuado para usted. El sitio web LibNFC es un excelente comienzo para encontrar un dispositivo que admita la emulación de etiquetas.

Ahora he terminado el proyecto y funciona muy bien con el dispositivo ACR122U. Si necesita ayuda con el segundo enfoque, pregunte.

+0

muchas gracias, hay mucha información en su respuesta. –

+0

@conor De acuerdo con usted, puedo crear comunicación entre mi dispositivo Android y Blackberry. El dispositivo solo requiere que ambos tengan que admitir la tecnología NFC. – Herry

Cuestiones relacionadas