31

我正在寻找一种方法来创建一个 NFC 标签,该标签可以共享我的网络的 wifi 凭据,而我的客人不必在他们的手机上安装任何特殊的 NFC 应用程序(除了手机附带的)。我一直在研究 NFC Tag Writer、WifiTap、NFC Task Launcher 和 NFCLabels.com 等应用程序和服务,但在我看来,我需要在访客手机上安装这些应用程序才能使用它,但我无法测试它,因为我只有一部支持 NFC 的手机可用。(是的,我知道,我绞尽脑汁,但见鬼,奇怪的行为并不是什么新鲜事......)

我最接近的线索是 WifiTap 指出:

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

如果这实际上是普遍的,这意味着我可以做我想做的事,但我还没有找到任何确认。那么,我想怎么做,我是否在 WifiTap 的线索上走在正确的轨道上?

4

5 回答 5

22

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

它似乎是具有application/vnd.wfa.wscMIME 类型和“WPS NFC”令牌的 NDEF 格式标签。

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

于 2015-05-14T22:26:04.133 回答
11

这种情况有一个官方标准:NFC Forum Connection Handover Technical Specification。但是,Android 目前不支持此功能。我认为目前没有任何方法可以在没有专用应用程序帮助的情况下使用 NFC 传输 WiFi 凭据。

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

  1. ACTION_NDEF_DISCOVERED 的意图过滤器和作为 URI 的应用程序在 Play 商店中的 URL。
  2. ACTION_NDEF_DISCOVERED 的意图过滤器和某些专有类型(例如 MIME 类型)的类型

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

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

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

于 2012-04-10T20:36:27.137 回答
2

我创建了一个应用程序,它实际上以标准化的方式编写网络进行标记 - 问题是 Android 目前无法识别移交记录并自动添加它们。也许这没关系 - 毕竟添加网络不仅仅是添加网络;例如,您可能会验证标签内容的作曲家等等。

此外,如果您想将多个网络写入标签,则可能根本没有足够的空间以正确的方式(使用标准化记录)进行。

于 2013-01-30T23:04:51.220 回答
1

我可能有错误的一端,但是使用从 Play 商店下载的应用程序 nfc 工具,您可以将 wifi 网络写入标签上,当使用默认的 android 5.0.2 扫描时。在 nexus 7 2013 上打开一个消息框,要求确认 wifi 连接,虽然这总是失败吧 o

于 2015-02-15T11:29:28.260 回答
0

形式为 WIFI:T:WPA;S:SSID;P:PASSPHRASE;; 的 URI 如果编码为二维码并扫描,将设置 WiFi;但是当编码为 NFC 标签时,它无法识别为 URI。这向我表明 NFC API 在 Android 中是有缺陷的。

于 2012-04-24T21:58:57.677 回答