ios13之前获取怎样获取wifi名

iOS 怎样获取wifi名(无法获取wifi名)(亲测有效)

ios13后

升级到iOS13以后,发现之前获取WiFi名称的接口失效了,返回的都是固定值"WLAN"。这里可能是因为苹果对用户隐私保护问题,因为通过wifi信息可以定位到用户地理位置。所以iOS13以后如果想要继续获取WiFi名称,需要在调用接口前判断用户是否同意app使用地理位置信息。

1.添加定位库

2.在Info.plist文件中配置,我把关于定位的4个都配上了

3.在控制中引入头文件,遵守代理

4.实现代理弹出框获取用户的定位授权

#pragma mark - 定位授权代理方法
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {if (status == kCLAuthorizationStatusAuthorizedWhenInUse ||status == kCLAuthorizationStatusAuthorizedAlways) {//再重新获取ssid[self getSSID];}
}- (void)getLocation
{if (!self.locManager) {self.locManager = [[CLLocationManager alloc] init];}if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {//这句代码会在app的设置中开启位置授权的选项,只有用户选择了允许一次,下次用户调用这个方法才会弹出询问框,选择不允许或是使用期间允许,下次调用这个方法都不会弹出询问框[self.locManager requestAlwaysAuthorization];}self.locManager.delegate = self;//如果用户第一次拒绝了,弹出提示框,跳到设置界面,要用户打开位置权限//如果用户跳到设置界面选择了下次询问,再回到app,[CLLocationManager authorizationStatus]的值会是nil,所以要||后面的判断if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied || ![CLLocationManager authorizationStatus]) {[self alertMy];}
}- (void)alertMy{//1.创建UIAlertControlerUIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"app需要获取您的位置权限,以获取wifi信息,给机器人配网" preferredStyle:UIAlertControllerStyleAlert];UIAlertAction *conform = [UIAlertAction actionWithTitle:@"设置" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {//使用下面接口可以打开当前应用的设置页面[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];NSLog(@"点击了确认按钮");}];//2.2 取消按钮UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {NSLog(@"点击了取消按钮");}];//3.将动作按钮 添加到控制器中[alert addAction:conform];[alert addAction:cancel];//4.显示弹框[self presentViewController:alert animated:YES completion:nil];
}

4.获取wifi信息

- (void)getSSID{ssidStr = [JMAirKissShareTools fetchSSIDInfo][@"SSID"];if ([StringHelper isNilOrEmpty:ssidStr]) {[self showHint:@"请加入Wi-Fi网络后搜索"];ssidStr = @"未连接到WiFi";}_wifiLab.text = ssidStr;}
#import "JMAirKissShareTools.h"#import <SystemConfiguration/SystemConfiguration.h>
#import <SystemConfiguration/CaptiveNetwork.h>#include <inttypes.h>#define CRC8INIT 0x00
#define CRC8POLY 0x31 // = X^8+X^5+X^4+X^0@implementation JMAirKissShareTools
/***  获取SSID信息**  @return id*/
+ (id)fetchSSIDInfo {NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();id info = nil;for (NSString *ifnam in ifs) {info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);if (info && [info count]) {break;}}return info;
}@end

参考博客:
链接: 6.iOS13 获取不到WiFi ssid 的问题
链接: OC 源生获取当前位置经纬度
链接: 解决iOS13 无法获取WiFi名称(SSID)问题

ios13无法获取wifi名(SSID)(亲测有效)相关推荐

  1. iOS 怎样获取wifi名(无法获取wifi名)(亲测有效)

    文章目录 1.代码实现 2.iOS12后要求在开发者网站的App ID Configuration和Xcode中打开wifi开关 3.ios13后要求用户授权开启定位权限,才能获取wifi名 1.代码 ...

  2. iOS中获取WiFi的SSID(CNCopySupportedInterfaces())

    获取当前设备连接WiFi: ios5之前可以通过读取配置文件获取,ios5以后苹果修改wifi列表文件位置,只有root权限才可以读取. ios4:/System/Library/SystemConf ...

  3. iOS 升级到iOS13 无法获取WiFi名称(SSID)的问题

    在升级到iOS13以后忽然发现无法获取WiFi名称(SSID),在iOS13以下我们可以通过下面的方法获取当前所连WiFi的名称等信息 //引入系统提供的官方库 #import <SystemC ...

  4. 用Python破解WiFi密码,亲测有效,简直不能太爽了

    本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网. 现在我想wifi已经是不能离开我们的生活了吧,最少我是这么觉得,我在家,公司,以及出门基本上都要用到,不 ...

  5. Android获取WIFI的SSID的一些差异,有的带引号

    原文地址:http://blog.csdn.net/a578855381/article/details/51579960 http://blog.sina.com.cn/s/blog_62f9876 ...

  6. linux修改网卡名(亲测有效)

    1查看网卡ip addr 2cd /etc/sysconfig/network-scripts Ls查看 3mv ifcfg-eno16777736 ifcfg-eth0重命名,然后编辑 最后一行加入 ...

  7. 小程序破解WIFI密码,亲测有效

    俗话说"小时偷针,大时偷鸡",来告诉我们从小要养成良好的行为习惯.但是自从走上程序员这条路以后,学习变得枯燥,明明很有时间,"却变得没有时间了",总之学习效率特 ...

  8. 如何免费获取IEEE论文,亲测有效,【分享给有需要的人】

    之前想做去雾算法在果园对靶的应用,想要搜集一些资料,包括何凯明博士在IEEE收录的一篇去雾论文Single Image Haze Removal Using Dark Channel Prior-IE ...

  9. 博主教您如何免费获得斐讯K2—1200M千兆家用双频智能无线路由器wifi穿墙(亲测有效)...

    前言 上个月3月3号的时候,同事推荐说买可以0元购买斐讯K2路由器,看办公室人员有几个买了,博主也半信半疑的尝试买了一个,试试看是不是真的能返还钱 截止今天,钱终于退回来了.所以才敢给大家推荐,顺便给 ...

最新文章

  1. Load和Initialize往死了问是一种怎样的体验?
  2. Flutter(一):用BottomNavigationBar实现常规的底部导航
  3. 4.1 MyEclipse中搭建Struts2开发环境
  4. 2005年中国之“至理名言”
  5. 一个功能非常全面的增强出口查找工具
  6. mysql batis传多个参数_Mybatis传多个参数(三种解决方案)
  7. mysql默认密码是多少_192.168.3.1默认登录密码是多少【详细介绍】
  8. python 类可以调用实例变量_Python实例方法、类方法、静态方法区别详解
  9. vc2010, fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt解决办法
  10. microsoft azure Media Services 媒体服务解决方案
  11. python pytorch tenser 索引 slice 切片
  12. 证券交易1-交易系统简介
  13. 来LAMP兄弟连的日子
  14. SpringMVC工作原理图
  15. 服务器inetpub是什么文件夹,处理inetpub文件夹在win10中的问题
  16. 系统级程序设计第一课内容——Linux系统与操作 2022.5.2
  17. 如何查看自己电脑的ip地址
  18. 加拿大曼尼托巴大学计算机专业几年,加拿大曼尼托巴大学专业
  19. Linux 命令随笔
  20. Flash 引导层 实现卫星绕地球旋转

热门文章

  1. uncompyle--pyc的逆向工程工具
  2. 选股公式关于尾盘内容选股公式最新的中线股票指标
  3. vim 常用复制剪切技巧
  4. 传智播客PHP笔记05-thinkphp框架-视图渲染、display,fetch,模板替换,模板变量的赋值与实现,系统变量,模板函数,模板运算符,foreach,if,比较标签,volist标签
  5. 数控计算机软件的确认表怎么做,[计算机软件及应用]单元3 数控编程基础.doc
  6. python中用于创建文件对象的是_Python内置函数________用来打开或创建文件并返回文件对象。...
  7. 2021辽宁省大学生程序设计竞赛
  8. 程序员2016年5月:走进VR开发世界
  9. 精益|什么是价值流图分析(VSM)?
  10. 浪潮和华为相比,到底差什么?