web-dev-qa-db-fra.com

Partager les identifiants Wifi via NFC tag sans applications spéciales

Je cherche un moyen de créer un tag NFC qui partage les identifiants Wi-Fi de mon réseau sans que mes invités n'aient à avoir d'applications spéciales NFC sur leur téléphone (autres que celles fournies avec le téléphone) . J'ai consulté des applications et des services tels que NFC Tag Writer, WifiTap, NFC Task Launcher et NFCLabels.com, mais il me semble qu'il me faudrait les applications sur le mobile invité. bien pour pouvoir l’utiliser, mais je ne suis pas en mesure de le tester car je ne dispose que d’un seul téléphone compatible NFC. (Oui, je sais, me tordre le cerveau pour rien, mais bon sang, un comportement étrange n'est pas nouveau ...)

Mon indice le plus proche est que WifiTap indique que:

L'application traite les URI au format wifi: // [réseau ssid]/[wep | wpa | open]/[clé réseau] 

Si cela est réellement universel, cela signifierait que je pourrais faire ce que je veux, mais je n’ai trouvé aucune confirmation à ce sujet. Alors, comment pourrais-je faire ce que je veux et suis-je sur la bonne voie avec l'indice de WifiTap?

30
Christian L

Il existe une norme officielle pour ce type de situation: NFC Spécification technique de transfert de connexion de forum . Cependant, ceci n'est actuellement pas supporté par Android. Je ne pense pas qu'il soit actuellement possible de transférer des informations d'identification WiFi à l'aide de NFC sans l'aide d'une application dédiée.

Une façon de procéder consiste à créer (ou à rechercher) une application dans le Google Play Store possédant les propriétés suivantes:

  1. Filtre d'intention pour ACTION_NDEF_DISCOVERED et, en tant qu'URI, l'URL de l'application dans le Play Store.
  2. Filtre d'intention pour ACTION_NDEF_DISCOVERED et comme type, un type propriétaire (par exemple, un type MIME)

Ensuite, vous pouvez créer des tags avec un message NDEF contenant les enregistrements NDEF suivants:

  1. Enregistrement SmartPoster avec Play Store URI et un texte descriptif (par exemple, nom de l'application)
  2. Enregistrement de type propriétaire contenant les informations d'identification WiFi
  3. Enregistrement d'application Android pour l'application

Le troisième enregistrement s'assurera que l'application appropriée sera toujours lancée ou que l'utilisateur du périphérique sera redirigé vers le Play Store pour l'installer. Cela ne fonctionne cependant que sur ICS, mais le premier enregistrement (combiné au filtre de la première intention) sert le même objectif sur Gingerbread.

11
NFC guy

Comme Alex l'a écrit dans un commentaire, vous pouvez désormais (depuis Lollipop) écrire une balise contenant les informations d'identification Wi-Fi directement à partir des paramètres Wi-Fi d'Android: appuyez longuement sur un réseau → Ecrire dans la balise NFC.

Cela semble être une balise au format NDEF avec le type MIME application/vnd.wfa.wsc et un jeton "WPS NFC".

Le code source correspondant se trouve dans platform/packages/apps/Settings/src/com/Android/settings/wifi/WriteWifiConfigToNfcDialog.Java .

20
Bruno Parmentier

J'ai créé une application qui écrit les réseaux à baliser de manière normalisée - le problème est qu'Android ne reconnaît pas actuellement les enregistrements de transfert et ne les ajoute pas automatiquement. Et peut-être que tout va bien - après tout, l’ajout d’un réseau ne se limite pas à l’ajout d’un réseau; vous pouvez par exemple vérifier le compositeur du contenu de la balise, etc.

De plus, si vous souhaitez écrire plus d'un réseau sur une balise, il se peut que l'espace ne soit pas suffisant pour le faire correctement (en utilisant des enregistrements normalisés). 

2
ThomasRS

Je peux avoir le mauvais bout du bâton, mais avec les outils NFC téléchargés du Play Store, vous pouvez écrire un réseau wifi sur une balise qui, une fois numérisée avec Android 5.0.2 par défaut Sur un lien 7, 2013 ouvre une boîte de message demandant à confirmer la connexion wifi, bien que cela ait toujours échoué.

1
grant page

URI de la forme WIFI: T: WPA; S: SSID; P: PASSPHRASE ;; définira WiFi si codé en code QR et scanné; mais lorsqu'il est codé dans une balise NFC, il n'est pas reconnu comme un URI. Cela me suggère que l’API NFC est déficiente sous Android.

0
Angela Slaney