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.CaptiveNetwork

import NetworkExtension

/// 手机 WiFi 信息
@objc
class WifiInformation: NSObject {
   
   
    
    private func wifiInformation() -> [String: Any]? {
   
   
        guard let interfaces = CNCopySupportedInterfaces(), let array = CFBridgingRetain(interfaces) as
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值