当前位置: 首页 > news >正文

iOS 获取Wifi信息

背景

智能硬件入网的时候,硬件端通常需要通过 WiFi入网,这种情况,可能需要App获取 WiFi信息,来做 WiFi 匹配,同时也可以减少用户填写的信息。

智能硬件 WiFi 入网方式

  • 利用 HomeKit 流程入网,然后利用 Boujour 绑定设备
  • App连接硬件 WiFi,将有网 WiFi 的信息通过 http 或者蓝牙方式发送给硬件(需要用户选择 wifi,且可能有网 WiFi 是硬件不支持的,比如部分硬件不支持5G WiFi)

部分智能硬件也具备扫描 WiFi 的功能,App可以获取硬件扫描到的 WiFi 列表,让用户选择,再传递给硬件,可以避免有网 WiFi 硬件不支持的问题。

获取当前手机 WiFi 连接信息

Capabilities权限:Access WiFi Infomation开关需要打开

如果没有连接 WiFi 则返回 nil

Objective-c 示例代码

- (NSString*)currentWifiName
{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[@"SSID"]; // 同理 获取 mac 地址为 return info[@"BSSID"];
}

输出 WiFi 信息如下

{BSSID = "e4:2a:8b:4c:e4:12";SSID = "xxxx";SSIDDATA = {length = 13, bytes = 0x4d65726f73735f4150505f3547};  // 转为字符串 和 wifi名字一样
}

Swift 示例代码,iOS14+ 采用 NetworkExtension

import Foundation
import SystemConfiguration
import SystemConfiguration.CaptiveNetworkimport NetworkExtension/// 手机 WiFi 信息
@objc
class WifiInformation: NSObject {private func wifiInformation() -> [String: Any]? {guard let interfaces = CNCopySupportedInterfaces(), let array = CFBridgingRetain

相关文章:

  • python打卡day39@浙大疏锦行
  • 苹果签名应用掉签频繁原因排查以及如何避免
  • 敏捷开发中如何避免迭代失控
  • Redis 主从复制中的全量拷贝机制详解
  • ubuntu20.04编译 pjproject-2.7.1
  • 2025音频传输模块全球选购指南:高品质音频体验的品牌之选
  • 可靠数据传输原理
  • Sqlalchemy 连mssql坑
  • 【前端】Vue3 中实现两个组件的动态切换保活
  • 快速上手shell条件测试
  • 【评测】DuReader-Retrieval数据集之初体验
  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.7 R语言解题
  • magic-api配置Git插件教程
  • 安装Arch Linux(实体机、干货)
  • Kubernetes 中部署 kube-state-metrics 及 Prometheus 监控配置实战
  • leetcode0954. 二倍数对数组-medium
  • CCPC shandong 2025 G
  • 双路物理CPU机器上安装Ubuntu并部署KVM以实现系统多开
  • 第二章支线一:影之殿堂 · 阴影与过渡魔法
  • 生成式人工智能:重构软件开发的范式革命与未来生态
  • 免费的网站搭建平台/北京关键词seo
  • 自己做b2b平台网站建设/如何快速搭建网站
  • 西安网站建设方案外包/央视新闻的新闻
  • 泉州网站模板建站/企业网站推广方案设计毕业设计
  • 网站建设询价函/网络推广员是什么
  • 做网站去哪里/网站百度收录要多久