IOS 判断设备 与 判断网络连接状态

来源:互联网 发布:vscode word 编辑:程序博客网 时间:2024/06/05 11:41

一、判断设备

01//设备名称
02return [UIDevice currentDevice].name;
03 
04//设备型号,只可得到是何设备,无法得到是第几代设备
05return [UIDevice currentDevice].model;
06 
07//系统版本型号,如iPhone OS
08return [UIDevice currentDevice].systemVersion;
09 
10//系统版本名称,如6.1.3
11return [UIDevice currentDevice].systemName;
01//判断是否为iPhone
02#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
03 
04//判断是否为iPad
05#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
06 
07//判断是否为ipod
08#define IS_IPOD ([[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"])
09 
10//判断是否为iPhone5
11#define IS_IPHONE_5_SCREEN [[UIScreen mainScreen] bounds].size.height >= 568.0f && [[UIScreen mainScreen] bounds].size.height < 1024.0f

二、判断网络连接状态

1、导入SystemConfiguration.framework,并#import<SystemConfiguration/SCNetworkReachability.h>

2、判断设备是否联网

view source
print?
01+ (BOOL)connectedToNetwork{
02     
03    //创建零地址,0.0.0.0的地址表示查询本机的网络连接状态
04     
05    struct sockaddr_storage zeroAddress;
06     
07    bzero(&zeroAddress, sizeof(zeroAddress));
08    zeroAddress.ss_len = sizeof(zeroAddress);
09    zeroAddress.ss_family = AF_INET;
10     
11    // Recover reachability flags
12    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
13    SCNetworkReachabilityFlags flags;
14     
15    //获得连接的标志
16    BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
17    CFRelease(defaultRouteReachability);
18     
19    //如果不能获取连接标志,则不能连接网络,直接返回
20    if (!didRetrieveFlags)
21    {
22        return NO;
23    }
24    //根据获得的连接标志进行判断
25 
26    BOOL isReachable = flags & kSCNetworkFlagsReachable;
27    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
28    return (isReachable&&!needsConnection) ? YES : NO;
29}
0 0