【问题标题】:How to get current network information for a given network interface on iOS 13如何在 iOS 13 上获取给定网络接口的当前网络信息
【发布时间】:2019-09-24 03:48:20
【问题描述】:

我正在尝试实现一个应用,该应用使用用户当前在 iOS 13 上连接的网络的 BSSID。

但是,Apple 的 documentation for CNCopyCurrentNetworkInfo on iOS 13 对其 API 的使用要求并不明确。

它在描述中陈述了以下内容:

请求应用必须满足以下要求之一

  • 应用使用Core Location,并拥有用户使用位置信息的授权。

  • 应用使用 NEHotspotConfiguration API 来配置当前的 Wi-Fi 网络。

  • 该应用已安装有效的 VPN 配置。

这似乎表明只需要满足上面列出的 3 个要求中的 一个

然而,它随后指出:

未能满足上述任何要求的应用会收到以下返回值:

  • 与 iOS 12 或更早版本关联的应用会收到包含伪值的字典。本例中SSID为Wi-Fi(或中国地区的WLAN),BSSID为00:00:00:00:00:00。

  • 链接到 iOS 13 或更高版本的应用收到 NULL。

这表明该应用需要满足上述所有要求

这使得要求是什么变得非常混乱,因为前一部分声称您只需要实现这三个中的一个即可获得 BSSID,而后一部分则表明如果您错过了三个要求中的任何一个。

对此的任何帮助将不胜感激!

【问题讨论】:

  • 对我来说,您需要“核心位置”权限并设置“访问 WiFi 信息”功能。
  • 我拥有位置权限和 WiFi 功能,但仍然没有检索到 SSID。您是否设法在 iOS 13.0 版本中检索到 SSID?
  • @BennyDavidovitz 老实说,我们只需要满足至少一个条件即可工作,这在阅读主题演讲时得到了证实。我尝试更新到 iOS 13.1 测试版并且它再次运行,所以 iOS 13.0 出了什么问题有点神秘
  • @Shinlos 尝试在 iOS 13 版本上运行。我知道测试版很好。您可以在此讨论 (github.com/HackingGate/iOS13-WiFi-Info/issues/7) 中看到我不是那个疯子。
  • 更新:重启 iOS 设备解决了它(不仅仅是我)

标签: ios iphone react-native ios13


【解决方案1】:

您的第二个引用确实说“任何”,所以不确定您为什么认为它建议“全部”。

你在 13.3 (17C54) 上试过了吗?

我在使用一些应用时遇到了一些问题。我开始怀疑它是“始终启用位置”还是“仅在使用应用程序时启用”。

【讨论】:

    【解决方案2】:

    您似乎并不孤单。

    根据下面的 github 线程,即使在最新版本的 iOS (13.2.2) 上,SSID 检索似乎也存在问题。

    在下面的链接中,您会发现 Apple 很可能已在 iOS 13.3 上修复了此问题,该版本现在处于测试阶段。我建议我们都测试一下,看看结果如何。

    https://github.com/HackingGate/iOS13-WiFi-Info/issues/7

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 2010-10-10
      • 1970-01-01
      • 2015-08-22
      • 2011-11-09
      • 1970-01-01
      相关资源
      最近更新 更多