获取Wi-Fi的SSID
前几天做项目的时候,碰到一个问题,获取wifi的SSID,其实就是获取Wi-Fi的名字
iOS12以前
在iOS13之前获取wifi的SSID很简单,苹果提供了接口CNCopyCurrentNetworkInfo,直接调用就可以拿到了,附上代码:
-(NSString *)getSSIDWhenAuth {
NSString *ssidNameStr = @"GET_SSID_FAILED";
NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
for (NSString *ifname in ifs) {
NSDictionary *ifDic = (__bridge_transfer NSDictionary *)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifname);
if(ifDic[@"SSID"]){
ssidNameStr = ifDic[@"SSID"];
}
}
return ssidNameStr;
}
是不是很简单,后来苹果处于对安全的考虑,这样是不行滴.
iOS12以后,Xcode11之前
在iOS 12中,经断点调试发现info为nil
。猜测是CNCopyCurrentNetworkInfo
方法在iOS 12中有了变化。通过查看官方文档,发现文档中增加了Important
字样的描述:
重要描述 在iOS 12+中使用此方法需要在Xcode中为应用授权获取WiFi信息的能力。授权后,Xcode会自动在App ID和应用的权限列表中增加获取WiFi信息的权限。
Xcode
-> [Project Name] -> Targets
-> [Target Name] -> Capabilities
-> Access WiFi Information
-> ON
按照上述方案操作完毕后,会发现工程的.entitlements
文件中多了一对Key-Value
:
接下来就可以正常获取ssid了,不过我现在环境是iOS13+,Xcode11+,发现Xcode没有Access WiFi Information开关了,查了很多资料,需要在开发者账号里配置.
iOS12以后,Xcode11之后,重新创建证书
步骤1、登录开发者账号
步骤2、钥匙串生成CSR文件
步骤3、创建证书
步骤4:创建完下载证书双击安装到Xcode
步骤5:
双击2位置,这时会在下面多出一条Access WiFi Information,这时就可以正常获取到ssid了.
获取Wi-Fi的SSID的更多相关文章
- iPhone,iPad如何获取WIFI名称即SSID
本文转载至 http://blog.csdn.net/wbw1985/article/details/20530281 2010年开始苹果清理了一批APP Store上的WIFI扫描软件, 缘由语焉 ...
- Android便携式热点的开启状态检测和SSID的获取
WIFI热点的开启状态和开启后的SSID如何获取呢? 打开WifiManager.java源码,可找到 getWifiApState() 方法,惊喜的发现直接调用这个方法就能获取到热点的状态,然而在调 ...
- 【转】获取android设备 id
关于本文档 Android的开发者在一些特定情况下都需要知道手机中的唯一设备ID.例如,跟踪应用程序的安装,生成用于复制保护的DRM时需要使用设备的唯一ID.在本文档结尾处提供了作为参考的示例代码片段 ...
- 获取设备信息——获取客户端ip地址和mac地址
1.获取本地IP(有可能是 内网IP,192.168.xxx.xxx) /** * 获取本地IP * * @return */ public static String getLocalIpAddre ...
- 【Win10 应用开发】扫描和连接Wi-fi网络
老周今天带大家去“扫雷”了,别当真,是扫描并连接指定无线网络,时尚一点叫Wi-fi. 所以,今天的任务要求你的设备至少有1张无线网卡,目前老周没看到过有N张无线网卡的设备.像笔记本.平板等设备都可以, ...
- Appium、selenium与Robot Framework
Robot Framework + Appium Appium-Python-Client: 与Appium Library和Appium Server的交互Appium Library通过Appii ...
- 我与solr(五)--关于schema.xml中的相关配置的详解
先把文件的代码贴上来: <?xml version="1.0" encoding="UTF-8" ?> <!-- 版权说明... --> ...
- 【Android】 Android-wifi 直连 wifi direct wifi p2p
现在,Android的支持Wi -Fi的直接点对点点对点(P2P)Android系统的供电设备和其他类型的设备,没有一个热点或互联网连接之间的连接.Android框架提供了一套Wi - Fi的P2P的 ...
- android intent收集转载汇总
Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS); ComponentName comp = ...
- Python-uiautomator使用说明文档
https://github.com/xiaocong/uiautomator 这个Python库是基于Android自带的uiautomator测试框架的一个python封包.适用于Android ...
随机推荐
- Array(数组)对象-->概念和创建
1.什么是数组? 数组对象是使用单独的变量名来存储一系列的值. 2.数组创建的三种方法: 方法1:常规方式 var arr=new Array(); arr[0]="lisa"; ...
- C++语言实现链式栈
在之前写的C语言实现链式栈篇博文中,我已经给大家大概介绍了关于链式栈的意义以及相关操作,我会在下面给大家分享百度百科对链式栈的定义,以及给大家介绍利用C++实现链式栈的基本操作. 百度百科链式栈 链式 ...
- "强调内容"组件:<em> —— 快应用组件库H-UI
 <import name="em" src="../Common/ui/h-ui/text/c_tag_i"></import> & ...
- 在linux中使用mailx发送邮件
[root@ml ~]# yum -y install mailx #安装 [root@ml ~]# vim /etc/mail.rc 在最后一行添加(我这里使用的是qq邮箱): @qq.com ...
- 2019-07-28【机器学习】无监督学习之聚类 DBSCAN方法及其应用 (在线大学生上网时间分析)
样本: import numpy as np import sklearn.cluster as skc from sklearn import metrics import matplotlib.p ...
- 提升效率必备!8个超好用的Python内置函数
文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 吃着不想停 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...
- 从联想昭阳到MacBook Pro,致我的那些败家玩意——电脑
对于程序员来说,你懂的,电脑就是我们的女朋友,在很多层面上,它都是,打游戏.敲代码,以及看影片. 我第一台电脑是联想的笔记本(昭阳系列),花了 4000 多块买的. 那时候,家里很是缺钱,4000 多 ...
- window 10 安装paddlepaddle 1.7 GPU版本
window 10 安装paddlepaddle 1.7 GPU版本 1)更新显卡驱动 2)安装cuda 10 https://developer.nvidia.com/cuda-10.0-downl ...
- 利用浏览器的console篡改cookie
背景: 最近公司有个客户问题,是由于浏览器的cookie中多记录过期的session id导致重复登录,普通操作无法复现,因此尝试进行cookie篡改复现问题. 方法: 首先,要知道软件定义的sess ...
- Linux学习笔记(六)压缩和解压缩命令
压缩和解压缩命令 zip unzip gzip gunzip bzip2 bunzip2 tar zip (.zip格式的压缩文件) 英文原意:package and compress (archiv ...