【发布时间】:2020-07-28 08:42:41
【问题描述】:
我有一个使用 WIFI 连接到外部设备的应用程序,我曾经通过检查 WIFI SSID 来验证 iPhone 是否已连接到设备。这在 iOS 13 发布时被阻止,我通过请求位置权限来获取 SSID 来修复它。
我现在尝试使用启用了定位服务的 iOS 14 测试版,但无法获取 WIFI SSID,但相同的代码适用于 iOS 13。
这是我打电话给CNCopyCurrentNetworkInfo时得到的日志
nehelper sent invalid result code [1] for Wi-Fi information request
nehelper sent invalid response: <dictionary: 0x1e815f3e0> { count = 1, transaction: 0, voucher = 0x0, contents =
"XPCErrorDescription" => <string: 0x1e815f548> { length = 18, contents = "Connection invalid" }
}
nehelper sent invalid response for Wi-Fi information request: <dictionary: 0x1e815f3e0> { count = 1, transaction: 0, voucher = 0x0, contents =
"XPCErrorDescription" => <string: 0x1e815f548> { length = 18, contents = "Connection invalid" }
知道如何解决这个问题吗? 谢谢
更新:只有在请求位置访问时精确位置处于打开状态时才有效
【问题讨论】:
-
我从未尝试过 iOS 14 测试版,但只是想问您,您成功运行了 iOS 13 的哪个子版本?我有一个基于 CNCopyCurrentNetworkInfo 13.1 的工作代码,但未能在 iOS 13.3 上运行相同的代码。以下是我修复并使其在 iOS 13.3 - 13.6 上运行的方法。 stackoverflow.com/a/60973304/13082295 iOS 14 有条件的时候我会试试。
-
我现有的代码与您在解决方案中描述的完全一样,它在所有情况下都可以在 iOS 13 上运行,但对于 iOS 14,它只有在用户接受了位置访问且具有精确位置的情况下才有效
-
您确实需要“精确位置”才能在 iOS 14 中请求任何 WiFi / SSID 相关信息。
-
@hibento 那么为什么它在 iOS 14 中不起作用?有什么想法吗?
-
@shaqirsaiyed 您需要“精确位置”权限,最后还需要“本地网络访问”权限 - developer.apple.com/videos/play/wwdc2020/10110。