acceso de bajo nivel a nfc en un smartphone usando libnfc

Me gustaría usar libnfc en un teléfono inteligente (puedo usar teléfonos Android o Windows). Necesito un acceso de bajo nivel al dispositivo NFC porque la API estándar no me permite realizar todas las acciones que necesito.

¿Es eso posible? ¿Hay alguna manera de hacer con algo que no sea libnfc? ¿Alguien me puede ayudar?

One Solution collect form web for “acceso de bajo nivel a nfc en un smartphone usando libnfc”

Telefono windows

En Windows Phone, no creo que sea fácil para usted evitar la API de Windows y acceder directamente a la capa de controladores del controlador NFC con su propia pila de software.

Androide

En Android, eso depende de lo que libnfc está hablando y de lo profundo que desea ir al sistema Android del dispositivo.

Esta libnfc sólo admite el controlador NFC PN532 de NXP y, por lo tanto, no funciona con los controladores NFC actuales integrados en los dispositivos Android (PN544 / PN547 de NXP, BCM2079x de Broadcom). Sin embargo, si está hablando de libnfc-nxp (para PN54x de NXP) o libnfc-nci (para BCM2079x de Broadcom y posiblemente otros chips compatibles con NCI), es una historia diferente. Es posible que pueda utilizarlos o adaptarlos a sus necesidades.

Así que la pregunta ahora es cómo podría pasar por alto la API estándar de Android y utilizar la pila NFC existente (libnfc-nci / nxp o servicio NFC de Android) directamente.

Le sugeriría que examine primero la funcionalidad que el servicio NFC de Android existente proporciona más allá de lo que está disponible a través de la API de Android. Si esa funcionalidad ya es suficiente, podría intentar establecer una interfaz directa con el servicio NFC y simplemente utilizar esa funcionalidad.

Si necesita más funcionalidad, se complicará: El controlador NFC está integrado en el sistema Android a través de un controlador de núcleo y es accesible como un archivo de dispositivo Linux (bajo /dev/ ). El servicio NFC de Android utiliza libnfc-nxp / nci para acceder a ese archivo de dispositivo. Así que en circunstancias normales, el archivo de dispositivo ya está siendo utilizado por el servicio NFC de Android y, por lo tanto, inaccesible / inutilizable por otras instancias de libnfc- *. Además, sólo el servicio NFC (o mejor dicho, su usuario Linux) tiene acceso al archivo del dispositivo.

Así que hay dos opciones:

  1. Puede modificar todo el sistema Android (es decir, crear un firmware de sistema Android personalizado). En ese caso, la opción más fácil sería utilizar el código fuente de servicio libnfc- * y Android NFC existente y ampliarlo con su funcionalidad. Incluso puede adaptar la API de Android de su firmware personalizado a sus necesidades.

  2. Desea cambiar un sistema en vivo (es decir, no desea que un flash de un firmware personalizado en el dispositivo). En ese caso, necesitará reemplazar el servicio NFC de Android existente con su propio servicio NFC que contiene la funcionalidad ampliada que necesita. Usted necesitaría ciertamente el acceso de la raíz para alcanzar cualquiera de eso (pues usted tendrá que forzar el servicio de NFC exsiting para cerrarse y como su servicio de NFC del reemplazo necesitará acceso al archivo del dispositivo del regulador de NFC).

  • Desafíos al realizar el desarrollo de aplicaciones móviles con Python
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.