《The iPhone Developer's Cookbook》
没什么好说的,直接上代码:
1、UIDevice+Reachability.h:
#import <UIKit/UIKit.h> @interface UIDevice (Reachability) + (BOOL) networkAvailable; + (BOOL) activeWLAN; + (BOOL) activeWWAN; @end
2、UIDevice+Reachability.m:
#import <SystemConfiguration/SystemConfiguration.h> #include <arpa/inet.h> #include <netdb.h> #include <net/if.h> #include <ifaddrs.h> #import "UIDevice-Reachability.h" @implementation UIDevice (Reachability) SCNetworkConnectionFlags connectionFlags; + (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; } #pragma mark Checking Connections + (void) pingReachabilityInternal { BOOL ignoresAdHocWiFi = NO; struct sockaddr_in ipAddress; bzero(&ipAddress, sizeof(ipAddress)); ipAddress.sin_len = sizeof(ipAddress); ipAddress.sin_family = AF_INET; ipAddress.sin_addr.s_addr = htonl(ignoresAdHocWiFi ? INADDR_ANY : IN_LINKLOCALNETNUM); // Recover reachability flags SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (struct sockaddr *)&ipAddress); BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &connectionFlags); CFRelease(defaultRouteReachability); if (!didRetrieveFlags) printf("Error. Could not recover network reachability flags\n"); } + (BOOL) networkAvailable { [self pingReachabilityInternal]; BOOL isReachable = ((connectionFlags & kSCNetworkFlagsReachable) != 0); BOOL needsConnection = ((connectionFlags & kSCNetworkFlagsConnectionRequired) != 0); return (isReachable && !needsConnection) ? YES : NO; } + (BOOL) activeWWAN { if (![self networkAvailable]) return NO; return ((connectionFlags & kSCNetworkReachabilityFlagsIsWWAN) != 0); } + (BOOL) activeWLAN { return ([UIDevice localWiFiIPAddress] != nil); } @end
相关推荐
个人总结,仅供参考;废话一句,全为二十。
UIDevice类是一个单例,其唯一的实例( [UIDevice currentDevice] ) 代表了当前使用的设备。 通过这个实例,可以获得设备的相关信息(包括系统名称,版本号,...也可以使用使用该实例来监测设备的特征(比如物理方向)
ios应用源码之获取当前硬件可用内存的例子uidevice .
UIDeviceComplete 填充缺失部分的UIDevice扩展。这个库是关于什么的? UIDeviceComplete是一个iOS库,旨在作为UIDevice扩展的集合,它提供UIDevice当前缺少的功能,例如确定您拥有哪个iOS设备(即iPhone X,iPhone 8...
IOS应用源码——UIDevice2.rar
DeviceKit是UIDevice的值类型替换
UIDevice最常见的用法就是用来监测iOS设备的电量了,然后再实现电池状态通知非常方便,除此之外还有传感器等信息的获取,这里我们就来总结一下iOS App开发中通过UIDevice类获取设备信息的方法:
UIDevice-DisplayName displayName()返回iOS设备的友好名称,其中不包括特定的类型信息(即“ iPhone X”) displayName(includeType: true)返回iOS设备的友好名称,其中还包括设备类型(例如“ iPhone X(GSM)”)...
UIDevice 封装,更方便的获取设备信息,以及仿真设备。.zip,DeviceKit is a value-type replacement of UIDevice.
IOS应用源码之获取当前硬件可用内存的例子UIDevice .zip
IOS应用源码——获取当前硬件可用内存的例子UIDevice.zip
根据网上资源扩展UIDevice类,完善增加设备检测函数;修改网上提供的给iPhone 数字键盘添加客制化按钮代码,使其兼容横竖屏,及iPad和iPhone。
MGCopyAnswer-From-UIDevice 如何从 UIDevice 类 PRIVATE API 获取设备信息
到现在为止,搜索的时候发现没有可用的范例,无处下手。那么先参考官方的范例吧。如何使用,参考其中的说明文件。
用于把移动端的设备的imei地址获取到。是私有api。不能通过苹果审核
UIView,UITextField,UITableViewCell,UIImage,UIDevice,UIColor,UIButton,UITabBarController,UIApplication类扩展包含CoreLocation.framework内部的CLLocation类扩展包含QuartzCore.framework的CALayer类...
.m} UIView+Frame{.h,.m} UIView+Xib{.h,.m} UIViewController+Xib{.h,.m} NSManagedObject+Map{.h,.m} NSManagedObject+Extension{.h,.m} NSString+KeyPath{.h,.m}UIDevice+isIPAD 此扩展程序可以轻松检查设备是否...
此包的替代方案可能是 react-native-device-info 原生 iOS UIDevice 和 Android Build 类的包装器,允许您访问设备属性和屏幕尺寸。 目前仅适用于 React Native iOS,Android 支持正在进行中。 安装 (iOS) 首先从 ...