博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS下的WiFi开发
阅读量:6154 次
发布时间:2019-06-21

本文共 2696 字,大约阅读时间需要 8 分钟。

  iOS下Wi-Fi开发需要添加依赖库SystemConfiguration.framework,在需要使用Wi-Fi信息的控制器下引入头文件#import <SystemConfiguration/CaptiveNetwork.h>

  1,Wi-Fi热点获取

+(NSString *) currentWifiSSID{#if TARGET_OS_SIMULATOR    return @"(simulator)";#else    NSArray *ifs = (__bridge id)CNCopySupportedInterfaces();    id info = nil;    for (NSString *ifnam in ifs) {        info = (__bridge id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);        if (info && [info count]) {            break;        }    }    NSDictionary *dctySSID = (NSDictionary *)info;    NSString *ssid = [dctySSID objectForKey:@"SSID"] ;    return ssid;#endif}

  2,取得本机Wi-Fi的IP地址

#include 
#include
#include
#include
#import
+(NSString *) localWiFiIPAddress{ BOOL success; struct ifaddrs * addrs; const struct ifaddrs * cursor; success = getifaddrs(&addrs) == 0; if (success) { cursor = addrs; while (cursor != NULL) { // the second test keeps from picking up the loopback address if (cursor->ifa_addr->sa_family == AF_INET && (cursor->ifa_flags & IFF_LOOPBACK) == 0) { NSString *name = [NSString stringWithUTF8String:cursor->ifa_name]; if ([name isEqualToString:@"en0"]) // Wi-Fi adapter return [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)]; } cursor = cursor->ifa_next; } freeifaddrs(addrs); } return nil;}

  3,获取当前Wi-Fi的名称

- (void)GetWifiName{NSString *wifiName = @"Not Found";CFArrayRef myArray = CNCopySupportedInterfaces();if (myArray != nil) {CFDictionaryRef myDict =CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));if (myDict != nil) {NSDictionary *dict = (NSDictionary*)CFBridgingRelease(myDict);wifiName = [dict valueForKey:@"SSID"];}NSLog(@"wifiName:%@", wifiName);}

  注意:需要真机才能测试!模拟器下返回空。

   4,打开系统设置

  从应用跳到系统设置里的WiFi界面有这个需求存在吗?答案是肯定的。

  在没有网的状态下,你可能想提醒用户去设置界面连接WiFi。如果不能跳到WiFi界面,只能在APP里面做出文字提示。这样很多小白用户可能不会看提示,只会觉得APP没有做好。

+(void)openSystemSetting:(NSString *)settingName{    //iOS8 才有效    float version = [[[UIDevice currentDevice] systemVersion] floatValue];#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_8_0#define SETTING_URL @"app-settings:"#else#define SETTING_URL   UIApplicationOpenSettingsURLString#endif    //  NSLog(UIApplicationOpenSettingsURLString);    if (version >= 8.0){        [[UIApplication sharedApplication] openURL:         [NSURL URLWithString:SETTING_URL]];    }}
UIApplication.sharedApplication().openURL(NSURL(string: "prefs:root=WIFI")!)

 

转载于:https://www.cnblogs.com/xjf125/p/5360550.html

你可能感兴趣的文章
学习笔记之Data Visualization
查看>>
Leetcode 3. Longest Substring Without Repeating Characters
查看>>
416. Partition Equal Subset Sum
查看>>
app内部H5测试点总结
查看>>
[TC13761]Mutalisk
查看>>
while()
查看>>
常用限制input的方法
查看>>
IIS7下使用urlrewriter.dll配置
查看>>
并行程序设计学习心得1——并行计算机存储
查看>>
bulk
查看>>
C++ 迭代器运算
查看>>
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
查看>>
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>