我最接近的线索是WifiTap声明:
如果这实际上是通用的,那么这意味着我可以做到我想做的事情,但我没有找到任何确认。因此,如何完成我想要的操作,我的思路是否正确?The app processes URIs in the format of wifi://[network ssid]/[wep|wpa|open]/[network key]
如果这实际上是通用的,那么这意味着我可以做到我想做的事情,但我没有找到任何确认。因此,如何完成我想要的操作,我的思路是否正确?The app processes URIs in the format of wifi://[network ssid]/[wep|wpa|open]/[network key]
正如Alex在评论中写到的那样,您现在(自棒棒糖版本以来)可以直接从Android Wi-Fi设置中编写包含Wi-Fi凭据的标签:长按网络→写入NFC标签。
看起来这是一个NDEF格式的标签,带有application/vnd.wfa.wsc
MIME类型和一个“WPS NFC”令牌。
相关源代码可以在platform/packages/apps/Settings/src/com/android/settings/wifi/WriteWifiConfigToNfcDialog.java
中找到。
这种情况有一个官方标准:NFC Forum连接交换技术规范。然而,Android目前不支持此标准。我认为目前没有任何方法可以在没有专门应用程序的帮助下使用NFC传输WiFi凭据。
一种解决方法是创建(或查找)一个具有以下属性的Google Play Store应用:
然后,您可以创建包含以下NDEF记录的标签:
第3个记录将确保始终启动正确的应用程序,或将设备用户重定向到Play Store安装它。但是,这仅适用于ICS,然而第1个记录(与第1个Intent过滤器结合使用)在Gingerbread上起到相同的作用。
parse()
函数中实现。 - NFC guy此外,如果您想向标签中写入多个网络,可能没有足够的空间以正确(使用标准化记录)的方式进行操作。
形如 WIFI:T:WPA;S:SSID;P:PASSPHRASE;; 的 URI,如果被编码成 QR 码并扫描,则会设置 WiFi;但是当被编码成 NFC 标签时,它无法被识别为 URI。这表明 Android 中的 NFC API 存在缺陷。