iOS 12 获取wifi名称失败的解决方法
2018-09-20 本文已影响0人
Mark_Liu_JS
iOS13以后,需要开启定位权限。
获取wifi名称
/**
获得当前wifi的名称
@return 当前手机连接的wifi名称
*/
+ (NSString *)getWifiName {
NSString *wifiName = nil;
CFArrayRef wifiInterfaces = CNCopySupportedInterfaces();
if (!wifiInterfaces) {
return nil;
}
NSArray *interfaces = (__bridge NSArray *)wifiInterfaces;
for (NSString *interfaceName in interfaces) {
CFDictionaryRef dictRef = CNCopyCurrentNetworkInfo((__bridge CFStringRef)(interfaceName));
if (dictRef) {
NSDictionary *networkInfo = (__bridge NSDictionary *)dictRef;
wifiName = [networkInfo objectForKey:(__bridge NSString*)kCNNetworkInfoKeySSID];
CFRelease(dictRef);
}
}
CFRelease(wifiInterfaces);
return wifiName;
}
- 上面的代码在
iOS12
以前是可以正常运行的。 - 在Xcode10中使用iOS12的SDK进行编译后就不能获取到wifi
解决方案
- 在Xcode中的
Capabilities
打开ACCESS Wifi information

- 打开以后, Xcode会提示你需要配置一下AppID.
- 编辑
ACCESS Wifi information
为Enalled
状态。
Snip20180920_1.png