无需特殊应用即可通过NFC标签分享Wifi凭据

Chr*_*n L 30 android nfc wifi android-wifi

我正在寻找一种方法来创建一个NFC标签,该标签共享我的网络的wifi凭据,而我的客人不必在他们的手机上安装任何特殊的NFC应用程序(除了随手机提供的).我一直在寻找NFC标签编写器,WifiTap,NFC任务启动器和NFCLabels.com等应用和服务,但在我看来,我需要在客户移动设备上安装应用程序以便能够使用它,但我无法测试它,因为我只有一部支持NFC的手机.(是的,我知道,绞尽脑汁,但是,哎呀,奇怪的行为并不是什么新鲜事......)

我最接近的线索是WifiTap声明:

该应用程序以wifi:// [network ssid]/[wep | wpa | open]/[network key]的格式处理URI

如果这实际上是普遍的,这意味着我可以做我想做的事,但我没有找到任何确认.那么,我想要做什么怎么样才能完成,我是否能够利用WifiTap的线索走上正轨?

Bru*_*ier 22

正如Alex在评论中写道,您现在可以(自Lollipop)直接从Android Wi-Fi设置中编写包含Wi-Fi凭证的标签:长按网络→ 写入NFC标签.

它似乎是一个NDEF格式的标签,具有application/vnd.wfa.wscMIME类型和"WPS NFC"令牌.

相关的源代码可以在中找到platform/packages/apps/Settings/src/com/android/settings/wifi/WriteWifiConfigToNfcDialog.java.


NFC*_*guy 11

这种情况有一个官方标准:NFC论坛连接切换技术规范.但是,Android目前不支持此功能.我认为目前没有任何方法可以在没有专用应用程序的帮助下使用NFC传输WiFi凭据.

解决此问题的一种方法是在Google Play商店中创建(或查找)具有以下属性的应用:

  1. 意图过滤ACTION_NDEF_DISCOVERED,并将URI视为Play商店中应用的URL.
  2. ACTION_NDEF_DISCOVERED的Intent过滤器和某些专有类型的类型(例如MIME类型)

然后,您可以使用包含以下NDEF记录的NDEF消息创建标记:

  1. 具有Play商店URI和一些描述性文本的SmartPoster记录(例如应用程序的名称)
  2. 包含WiFi凭证的专有类型的记录
  3. Android应用程序记录的应用

第3条记录将确保始终启动正确的应用程序或将设备用户重定向到Play商店进行安装.但这仅适用于ICS,但第一条记录(与第一个意图过滤器结合使用)在Gingerbread上具有相同的用途.