美文网首页
iOS 12 获取wifi名称失败的解决方法

iOS 12 获取wifi名称失败的解决方法

作者: Mark_Liu_JS | 来源:发表于2018-09-20 10:52 被阅读0次

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
Snip20180920_2.png
  • 打开以后, Xcode会提示你需要配置一下AppID.
  • 编辑ACCESS Wifi informationEnalled状态。
    Snip20180920_1.png

相关文章

网友评论

      本文标题:iOS 12 获取wifi名称失败的解决方法

      本文链接:https://www.haomeiwen.com/subject/ufpgnftx.html