6.iOS13 获取不到WiFi ssid 的问题

这两天,测试机升级到iOS13beta6 版本,发现获取不到WiFi 的ssid了,之前通过CNCopyCurrentNetworkInfo 获取 ssid不好使了。

通过 CNCopyCurrentNetworkInfo 一直都返回 “WANL”

这到底是怎么回事呢?

一通折腾以后,终于找到原因了

下面着重讲一下最简单的开启定位权限方法:
1. 添加CoreLocation.framework


2. #import <CoreLocation/CLLocationManager.h>
3.创建 @property (nonatomic, strong) CLLocationManager *locManager; 属性
4.设置定位权限
其中: self.locManager = [[CLLocationManager alloc] init]; 如果不使用属性,直接 CLLocationManager *locManager = [[CLLocationManager alloc] init];,出了方法 locManager就会被释放,授权弹框就会一出现就消失(闪现)
- (void)getcurrentLocation {
    if (@available(iOS 13.0, *)) {
        //用户明确拒绝,可以弹窗提示用户到设置中手动打开权限
        if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) {
            //使用下面接口可以打开当前应用的设置页面
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
        }
        
        self.locManager = [[CLLocationManager alloc] init];
        self.locManager.delegate = self;
        if(![CLLocationManager locationServicesEnabled] || [CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined){
            //弹框提示用户是否开启位置权限
            [self.locManager requestWhenInUseAuthorization];
        }
    }
}

5.接收代理self.locManager.delegate = self;,实现代理方法

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
    if (status == kCLAuthorizationStatusAuthorizedWhenInUse ||
        status == kCLAuthorizationStatusAuthorizedAlways) {
        //再重新获取ssid
        self.wifiSsidTf.text = [self wifSsid];
    }
}
+ (NSString*)wifSsid
{
    NSArray *interfaces = (__bridge_transfer NSArray*)CNCopySupportedInterfaces();
    NSDictionary *info = nil;
    for (NSString *ifname in interfaces) {
        info = (__bridge_transfer NSDictionary*)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifname);
        if (info && [info count]) {
            break;
        }
        info = nil;
    }
    
    NSString *ssid = nil;
    
    if ( info ){
        ssid = [info objectForKey:@"SSID"];
    }
    info = nil;
    return ssid? ssid:@"";
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值