+(NSString *)getNetWorkStates{
UIApplication *app = [UIApplication sharedApplication];
NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
NSString *state = [[NSString alloc]init];
int netType = 0;
//获取到网络返回码
for (id child in children) {
if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
//获取到状态栏
netType = [[child valueForKeyPath:@"dataNetworkType"]intValue];
switch (netType) {
case 0:
state = @"无网络";
//无网模式
break;
case 1:
state = @"2g";
break;
case 2:
state = @"3g";
break;
case 3:
state = @"4g";
break;
case 5:
{
state = @"wifi";
}
break;
default:
break;
}
}
}
//根据状态选择
return state;
}
使用 playManager :
/**
* 判断是否有网络
*/
+ (BOOL) isOnNetWork
{
if ([[playManager getNetWorkStates] isEqualToString:@"无网络"] ||
[[playManager getNetWorkStates ] isEqualToString:@""]) {
return NO ;
} else {
return YES ;
}
}

本文介绍了一个用于检测iOS设备网络状态的方法,通过分析状态栏信息来判断当前设备处于2G、3G、4G、WiFi或者无网络状态,并提供了一个简单的接口以供应用程序调用检查网络连接情况。
1581

被折叠的 条评论
为什么被折叠?



