You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

NEHotspotConfigurationManager相关咨询:能否获取WiFi列表及API调用异常

NEHotspotConfigurationManager相关问题解答

嘿,针对你提出的三个问题,我结合iOS官方文档和实际开发经验给你梳理清楚:

1. NEHotspotConfigurationManager能否获取WiFi列表?

可以,但它的能力有严格限制——只能获取当前设备通过NEHotspotConfigurationManager API配置并成功连接过的WiFi SSID列表,完全没办法扫描附近未连接的WiFi信号。

2. 调用getConfiguredSSIDsWithCompletionHandler:返回null的原因

先看你的代码:

[[NEHotspotConfigurationManager sharedManager] getConfiguredSSIDsWithCompletionHandler: ^ (NSArray * array) { NSLog (@ "Response:% @", array); }];

返回空数组(你看到的null其实是空数组的日志输出)通常有这几个常见原因:

  • 从未用该API配置过WiFi:如果你的设备从来没通过NEHotspotConfigurationManagerapplyConfiguration:方法配置并成功连接过任何WiFi,这个方法自然返回空。
  • 权限未配置:必须在项目的Info.plist中添加Hotspot Configuration权限(对应的键是com.apple.developer.networking.HotspotConfiguration,类型设为Boolean,值为YES),否则API会静默返回空。
  • iOS版本不兼容getConfiguredSSIDsWithCompletionHandler:是iOS 13才引入的API,如果你在iOS 12或更低版本调用,会直接返回空或者触发兼容性问题。
  • 所有配置已被移除:如果之前调用过removeConfigurationForSSID:移除了所有通过该API配置的WiFi,也会返回空数组。

3. 是否可无需通过NEHotspotHelper,使用NEHotspotConfigurationManager获取附近WiFi?

完全不行。NEHotspotConfigurationManager的核心定位是管理已配置的WiFi连接,没有扫描附近WiFi的功能。

要获取附近的WiFi列表,唯一的官方途径是使用NEHotspotHelper,但这个API有很高的门槛:你需要向苹果开发者支持申请com.apple.developer.networking.HotspotHelper的特殊权限,普通开发者默认无法获取。这是iOS系统为了隐私和安全设置的限制,没有这个权限的话,任何App都无法扫描附近的WiFi信号。

内容的提问来源于stack exchange,提问作者Chris.Chen

火山引擎 最新活动