美文网首页
iOS下的WiFi开发

iOS下的WiFi开发

作者: ShineYangGod | 来源:发表于2017-12-15 16:57 被阅读115次

找资料的时候看到别人写的,记录下,有空自己研究下
 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 <arpa/inet.h>

include <netdb.h>

include <net/if.h>

include <ifaddrs.h>

import <dlfcn.h>

+(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")!)
原文链接地址:http://www.cnblogs.com/xjf125/p/5360550.html

相关文章

  • iOS客户端 获取WIFI ssid等信息资料

    iOS Wifi编程要点总结-获取WIFI名和IP iOS客户端公共WIFI解决方案 iOS开发中WiFi相关功能...

  • iOS下的WiFi开发

    找资料的时候看到别人写的,记录下,有空自己研究下iOS下Wi-Fi开发需要添加依赖库SystemConfigura...

  • WiFi

    iOS开发中WiFi相关功能总结 iOS 获取系统wifi列表,wifi信号强度,并给wifi设置密码,标签(副标...

  • ios 越狱hook 打开-关闭wifi的操作

    ios hook开发打开 关闭wifi的操作 主要是hook SpringBoard 首先得到hook wifi的...

  • iOS开发 获取wifi信息

    最近在做测速SDK开发,对iOS端wifi进行了调研,分享一下调研成果从 iOS 4.1 开始,Apple 就提供...

  • IOS Wifi列表开发

    参考文献:iOS 9.0 搜索附近Wi-Fi热点

  • iOS开发 Wifi相关

    1.获取Wifi相关信息 一般我们常用Wifi信息有Wifi的名称:SSID,还有Wifi的MAC地址:BSSID...

  • iOS开发 WiFi连接

    通过手机系统相机扫描WiFi二维码连接WiFi 很简单, 生成二维码的时候, 使用 即可系统相机扫描到二维码后, ...

  • iOS开发-跳转系统设置

    之前看到的文章《iOS开发之如何跳到系统设置里的WiFi界面》介绍了如何从APP里跳到WiFi设置界面,我也非常喜...

  • iOS Wifi 打印

    iOS wifi 打印

网友评论

      本文标题:iOS下的WiFi开发

      本文链接:https://www.haomeiwen.com/subject/dcpdwxtx.html