Compartir credenciales Wifi a través de etiqueta NFC sin aplicaciones especiales

Estoy buscando una manera de crear una etiqueta NFC que comparte las credenciales wifi de mi red sin mis invitados tener que tener alguna aplicación especial NFC en su teléfono (que no sea lo que viene con el teléfono). He estado buscando en aplicaciones y servicios como NFC Tag Writer, WifiTap, NFC Task Launcher y NFCLabels.com, pero me parece que me gustaría tener las aplicaciones en el móvil de invitados, así para poder usarlo, Pero no puedo probarlo, ya que solo dispongo de un teléfono habilitado para NFC. (Sí, lo sé, retorciendo mis cerebros por nada, pero diablos, el comportamiento extraño no es nada nuevo …)

Mi pista más cercana es que WifiTap afirma que:

La aplicación procesa URIs en el formato de wifi: // [network ssid] / [wep | wpa | open] / [clave de red]

Si esto es realmente universal esto significaría que podría hacer lo que yo quiero, pero no he encontrado ninguna confirmación en esto. Entonces, ¿cómo podría lo que quiero que se haga y estoy en el camino correcto con la pista de WifiTap?

Existe un estándar oficial para este tipo de situación: NFC Forum Connection Handover Technical Specification . Sin embargo, esto no es compatible actualmente con Android. No creo que actualmente haya ninguna forma de transferir credenciales WiFi usando NFC sin la ayuda de una aplicación dedicada.

Una manera de hacerlo es crear (o buscar) una aplicación en Google Play Store que tenga las siguientes propiedades:

  1. Filtro de intenciones para ACTION_NDEF_DISCOVERED y como URI la URL de la aplicación en Play Store.
  2. Filtro de intención para ACTION_NDEF_DISCOVERED y como tipo de algún tipo propietario (por ejemplo, un tipo MIME)

A continuación, puede crear etiquetas con un mensaje NDEF que contiene los siguientes registros NDEF:

  1. Registro SmartPoster con URI Play Store y algún texto descriptivo (por ejemplo, nombre de la aplicación)
  2. Registro de tipo propietario que contiene las credenciales WiFi
  3. Registro de aplicaciones de Android para la aplicación

El tercer registro se asegurará de que la aplicación correcta siempre se iniciará o el usuario del dispositivo será redirigido a Play Store para instalarlo. Esto funciona solamente en ICS, sin embargo, pero el primer registro (combinado con el filtro de la primera intención) sirve el mismo propósito en Gingerbread.

Como escribió Alex en un comentario, ahora (desde Lollipop) puede escribir una etiqueta que contenga credenciales de Wi-Fi directamente desde la configuración Wi-Fi de Android: toque una red → Escribir en etiqueta NFC .

Parece ser una etiqueta con formato NDEF con el tipo MIME application/vnd.wfa.wsc y un token "WPS NFC".

El código fuente relevante se puede encontrar en la platform/packages/apps/Settings/src/com/android/settings/wifi/WriteWifiConfigToNfcDialog.java .

He creado una aplicación que realmente escribe redes para etiquetar de una manera estandarizada – el problema es que Android no reconoce los registros de traspaso y automágicamente añadirlos. Y tal vez eso está bien – después de todo hay más a la adición de una red que sólo añadir una red; Por ejemplo, puede comprobar el compositor del contenido de la etiqueta y así sucesivamente.

Además, si desea escribir más de una red en una etiqueta, es posible que no tenga suficiente espacio para hacerlo de la manera correcta (utilizando registros estandarizados).

Puedo tener el extremo equivocado del palillo pero con las herramientas de la aplicación nfc descargadas de la tienda de juego se puede escribir una red wifi en una etiqueta que cuando se escanea con descargo de Android 5.0.2. En un nexus 7 2013 se abre un cuadro de mensaje preguntando la forma de confirmación de la conexión wifi, aunque esto siempre ha fallado bar o

Un URI de la forma WIFI: T: WPA; S: SSID; P: PASSPHRASE ;; Establecerá WiFi si está codificado con un código QR y escaneado; Pero cuando se codifica a una etiqueta NFC no se reconoce como URI. Esto me sugiere que la API NFC es deficiente en Android.

  • Compruebe si la red ScanResult ya está configurada (existe en la lista getConfiguredNetworks ())
  • Cómo conectarse a WPA_EAP WIFI en Android con API 4.3
  • Creación de un registro WiFi NDEF utilizando application / vnd.wfa.wsc en Android
  • Eventos de conexión de cliente wifi hotspot de Android
  • Android: Activar / desactivar WiFi Hotspot mediante programación en Android Marshmallow (6.0)
  • Aplicación de mapas personalizados en interiores
  • Cómo obtener el IP del hotspot wifi en Android?
  • Crear configuración de punto de acceso Wifi en android
  • Portal cautivo con hotspot android configurado mediante programación
  • Android 6.0 comprueba si está conectado a una red Wi-Fi (sin Internet)
  • Wi-Fi tethering - cómo obtener la lista de clientes conectados
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.