iOS获取当前网络状态
2014-09-20 22:21
204 查看
首先,我们需要拿到状态栏,然后通过runtime去探讨状态栏内部的组成结构
需要#import <objc/message.h>(xcode6下不导入也没影响)
这里为了方便定义枚举
调用上面的方法
打印出的type数字对应的网络状态依次是:0 - 无网络; 1 - 2G; 2 - 3G; 3 - 4G; 5 - WIFI
需要#import <objc/message.h>(xcode6下不导入也没影响)
这里为了方便定义枚举
typedef enum { NO_G_WORK = 0, TWO_G_WORK, THREE_G_WORK, FOUR_G_WORK, WIFI = 5, }NET_STATUS;
#pragma mark - getNetworkStatus - (void)getNetworkStatus { // 状态栏是由当前app控制的,首先获取当前app UIApplication *app = [UIApplication sharedApplication]; NSArray *children = [[[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews]; NET_STATUS type = 0; for (id child in children) { if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) { type = [[child valueForKeyPath:@"dataNetworkType"] intValue]; } } switch (type) { case NO_G_WORK: NSLog(@"NO_G_WORK"); break; case TWO_G_WORK: NSLog(@"TWO_G_WORK"); break; case THREE_G_WORK: NSLog(@"THREE_G_WORK"); break; case FOUR_G_WORK: NSLog(@"FOUR_G_WORK"); break; case WIFI: NSLog(@"WIFI"); break; default: break; } }
调用上面的方法
- (void)viewWillAppear:(BOOL)animated { [self getNetworkStatus]; }
打印出的type数字对应的网络状态依次是:0 - 无网络; 1 - 2G; 2 - 3G; 3 - 4G; 5 - WIFI
相关文章推荐
- ios获取当前的网络状态, 获取当前连接的wifi名字
- iOS获取手机当前的网络状态
- iOS 获取当前网络状态(转载)
- ios获取当前的网络状态, 获取当前连接的wifi名字
- iOS开发之runtime的运用-获取当前网络状态
- iOS开发之runtime的运用-获取当前网络状态
- 关于获取ios当前的网络状态
- iOS如何获取手机当前的网络状态
- 获取ios设备当前网络状态
- iOS中利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G)
- iOS开发------之runtime的运用-类与对象&&&获取当前网络状态
- iOS开发之runtime的运用-获取当前网络状态
- iOS开发之runtime的运用-获取当前网络状态
- iOS-开发之runtime的运用-获取当前网络状态
- iOS开发之runtime的运用-获取当前网络状态
- iOS-获取当前设备的信息,网络状态,运营商,设备震动.获取设备信息
- 获取当前用户的网络状态--iOS
- iOS 获取当前网络的状态
- ios获取当前的网络状态, 获取当前连接的wifi名字
- iOS开发之runtime的运用-获取当前网络状态