iOS 获取手机当前连接的 WiFi 信息

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇

作者:掘金 形影相吊

https://juejin.cn/post/7032853944170709006

一、应用背景

物联网开发中,对设备进行配网时需要打开手机的WiFi功能,并且连接上相应的设备WiFi热点,把家庭的WiFi名称和密码通过TCP连接或UDP广播的方式发送给设备。设备接入到家庭的WiFi名称和密码后就可以连接上家庭WiFi,将设备注册到云端,从而实现设备上云。那么在iOS中,我们如何获取手机当前连接的WiFi信息呢?

二、前提

iOS中要获取手机当前连接的WiFi信息,iOS13.0之后必须先打开定位,iOS14.0之前还要打包精准位置,详情可以参考iOS精确位置,然后去设置APP连接上任意的WiFi。

三、获取方式

1.获取SSID---WiFi名称

+ (NSString *)getWifiSSID {NSString *ssid = nil;CFArrayRef arrRef = CNCopySupportedInterfaces();NSArray *ifs = ( __bridge id)arrRef;for (NSString *ifnam in ifs) {CFDictionaryRef dicRef = CNCopyCurrentNetworkInfo(( __bridge CFStringRef)ifnam);NSDictionary *info = ( __bridge id)dicRef;if (info[@"BSSID"]) {ssid = info[@"SSID"];}if(dicRef !=nil) {CFRelease(dicRef);}}if(arrRef != nil) {CFRelease(arrRef);}return ssid;
}

2.获取BSSID---WiFi的MAC

+ (NSString *)getWifiBSSID {NSString *bssid = @"";CFArrayRef arrRef = CNCopySupportedInterfaces();NSArray *ifs = ( __bridge id)arrRef;for(NSString *ifnam in ifs) {CFDictionaryRef dicRef = CNCopyCurrentNetworkInfo(( __bridge CFStringRef)ifnam);NSDictionary *info = ( __bridge id)dicRef;if (info[@"BSSID"]) {bssid = info[@"BSSID"];}if(dicRef != nil) {CFRelease(dicRef);}}if (arrRef != nil) {CFRelease(arrRef);}return bssid;
}

四、写在最后的重点

iOS中提供了快速获取手机当前连接的WiFi的信息,可以方便我们快速设置wifi信息和密码完成为智能设备的联网;但这只是其中的一种方式,而直接获取手机当前连接的wifi的方式也存在配网失败的风险。

目前大部分的设备只支持2.4G频段的WiFi,5G频段的WiFi设备是无法完成联网操作的,而手机是可以同时支持2.4G和5G的;所以如果手机当前连接的是5G频段的WiFi,我们是无法使用其为设备完成联网操作的。这里提供一些其他设置配网wifi的方式:

  • 1.手机输入WiFi名称:这种方式出错率太高,并且非常不友好,不过可以作为系统原因或用户设置原因(如未开启定位或精确位置时)导致无法通过上面的方法获取到手机连接的WiFi信息时的兜底方案;

  • 2.模块支持搜索附近WiFi:这种方式需要设备内置的联网模块本身支持搜索附近的WiFi热点,并且最好同时支持蓝牙,可以方便通过蓝牙连接把设备搜索到的WiFi信息发送给手机app,手机端可以选择设置已经发现的热点,设置密码后即可进行对设备的配网。这种方式就不要求手机是否开启定位,甚至不需要手机连接了WiFi,而且不用考虑是否是5G频段的WiFi,因为设备能搜索到的WiFi热点肯定也支持连接WiFi热点了;不过这种方式成本高,需要设备同时支持WiFi模块和蓝牙模块。

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

515ae1ccb2199c138438752d7801be99.png

点击👆卡片,关注后回复【面试题】即可获取

在看点这里73af9cd71d4f69103f0e3ab6e1f38364.gif好文分享给更多人↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/251972.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

苹果手机(iPhone)系统升级到IOS16.1后,发现连接WiFi、热点总是经常自动(随机)断开

问题出现 1、近几天发现手机上网总是异常,明明WiFi连上的,但就是无响应,起初,由于在家里正常,只是公司会出现这种情况,所以一直以为是公司网络慢的原因。 2、后面无意间发现我的另外一个备用机连公司WiFi(…

打印机打印纸张空白

1检查驱动 2图片打印不了 使用2345看图王软件打印 由于看图王广告较多,所以可以把图片放到word中打印

html怎么消除打印的进纸,打印机缺纸状态怎么消除?

打印机总是提示缺纸 故障描述:用户最近在使用打印机的时候发现,明明打印机进纸槽中装有不少打印纸张。可是在执行打印操作时,印机控制面板中的缺纸信号灯却总是闪烁。 故障诊断:产生这种故障的原因一般是打印机的纸张传动结构出现…

HP打印机M329dw纸盘关闭卡、涩问题解决

HP打印机M329dw纸盘是全封闭的。 打开装纸如下: 这个打印机是新的,用着感觉还不错。打印速度快,支持无线和有线网络,快速扫描,进稿器满足了一次连续扫描多张的需求,直接存在U盘更方便。 看上去啥啥都挺好&…

打印机提示手动进纸解决办法

今天公司打印机打印时提示手动进纸,奇怪的是之前好好的,也没人动他,咋突然就提示这个呢,更奇怪的是其他人打印都没问题,唯独另外一个同事,已打印就提示手动进纸。 在网上搜索解决办法: 很多说法…

打印机纸张放置图标图解--如何区别空白面待打印页怎么放置,双面手动打印如何放对纸的方向

打印机纸张放置图标 这个标识的意思就是将打印在纸张的哪一面上。 上图中红框中的图标意思是将打印在所放纸张的下面。如果要翻面打印的话,就是把已经打印好的那面放在上面,箭头的意思表示头朝外放。 上图中红框中的图标意思是将打印在所放纸张的上面。如…

解决HP laserjet Pro M401d打印机提示“ 将介质装入纸盒1,普通纸 信封C5或按OK使用可用介质”

打印机型号HP laserjet Pro M401d 最近在办公室打印东西的时候,那台USB直连的惠普打印机总是出现这个提示,有个黄灯闪烁,这个时候必须手动按OK才可以继续打印,很麻烦。 故障现象1 故障现象2 上网查询解决办法,看了一些…

EPSON LQ-675KT 打印机无法进纸解决方法

最近一台爱普生675KT的针式打印机前面不能自动进纸,放入纸张滚轴是反向退纸,暂停缺纸灯闪,按进纸按钮无效,从经验上来说应该是进纸传感器问题,下一步就是要拿出进制传感器了,按如下方法拆卸: 1、先把前置送纸器滚动条拆卸&#x…

计算机装打印机,电脑怎么安装打印机

打印机是现在我们办公设备的必要用品之一,任何档案,文件的纸质版都需要经过打印机进行,所以说打印机在一个办公室里是必不可少的,那么,相对来说是一个问题,安装打印机,一个对于会电脑的人是一个…

导入日历 ICS文件 完整版(原创)---解析icS文件

4月21日 15更新 加了注释, 只留下导入的代码了(解析ICS) 因项目需要,这几天写了个日历导入导出代码 (ICS文件) 与大家探讨探讨; 转载 请注明出处 liveTea http://www.cnblogs.com/zhegebucuo Code

ICNS格式文件用途及分析

Icns 何方神圣, 当我们解包Mac OS X 中的 APP 时,以系统自带的词典APP为例,我们看到扩展名为 icns 的 文件(图 1)。 (图 1) 那么这个icns 是何方神圣,以下让我们一探究竟。 苹果图标…

无法识别ICA文件

问题:无法识别ICA文件怎么办? 场景:该问题常发生在Windows系统,由于软件关联异常,无法打开云桌面的ICA文件,导致无法调用云桌面客户端。 【方案1】导入注册表项 步骤一、点击下载 ICA文件打开方式修复 …

ICS文件说明和创建(以Outlook为例)

一、ICS文件是什么 ics文件官方文档https://www.ietf.org/rfc/rfc2445.txt .ics格式的文件指的是iCalendar(“日历数据交换标准”)文件格式和文件类型,是一种用于保存和交换日历信息的标准格式。iCalendar格式不依赖于任何网络协议,因此通过现有的各种服务(如HTTP、电…

HBase数据结构与基本语法详解

HBase数据结构与基本语法详解.背景: 阅读新闻 [日期:2019-01-06] 来源:Linux社区 作者:Linux [字体:大 中 小] HBase中的表一般有这样的特点: 1 大:一个表可以有上亿行,上百万列 2 面…

【淘宝API开发系列】获取商品详情,商品评论、卖家订单接口

一、获取淘宝卖家店铺订单背景 订单是卖家的核心数据,卖家的很多日常工作都是围绕着订单展开,应用的基本功能就是要保证订单实时、完整的展示在卖家面前。由于API请求依赖于网络,存在 着网络不稳定和同步时间长的问题,所以…

【阿里云生活物联网架构师专题 ⑧】基于在 SpringBoot Java私有云上接收阿里云物联网设备的各种状态数据,实现m2m流转;

本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。 1、esp32接入阿里云物联网平台,实现天猫精灵语音控制; 2、esp8266直连…

软件吞噬世界,Api快速入门到放弃

正如汽车行业必须达到一定的规模,才能让企业只生产一个部件。软件产业现在已经足够大了,尤其当你接受所谓的“软件吞噬世界”此类的说法时更是如此。因此,和汽车工业不再生产自己的钢铁一样,大多数公司都希望利用API来提供更好的服…

EKS独领风骚

前言 随着公司的逐渐发展,开拓了更加多的子项目与小程序,这些都需要进行宣传,但是管理以及部署新的应用是一个繁琐的工程,部署麻烦而且更新业务的时候非常不方面。尤其面向用户的时候,体验感很差。于是想要使用docker…

区块链,不是元宇宙的全部

元宇宙的火爆并非偶然。无论是在投资界,还是在行业界,我们都看到了元宇宙的身影。“元宇宙”,俨然已经成为一个全新的风口。由于与元宇宙之间的天然联系,于是,很多人开始将元宇宙与区块链联系在一起,甚至还…

区块链+新零售全方位追踪记录有形商品或无形信息的流转链条

传统的溯源系统一般都是使用中心化账本模式,由各个市场参与者分散孤立地记录和保存,是一种信息孤岛模式。 在中心化账本模式下,谁作为中心维护这个账本变成为了问题的关键,无论是源头企业,还是渠道商保存,…