iOS 앱을 개발 중이며 기기에 어떤 유형의 셀룰러 연결이 있는지 확인하고 싶습니다.iOS에서 셀룰러 네트워크 유형 확인
내 장치가 사용하는 셀룰러 네트워크 종류 인 2G 또는 3G 또는 기타에 가장 관심이 있습니다.
그러나 Reachability.h는 wifi 또는 3G에 대한 확인 만 제공합니다.
어떻게 2G, 3G 등을 확인할 수 있습니까?
iOS 앱을 개발 중이며 기기에 어떤 유형의 셀룰러 연결이 있는지 확인하고 싶습니다.iOS에서 셀룰러 네트워크 유형 확인
내 장치가 사용하는 셀룰러 네트워크 종류 인 2G 또는 3G 또는 기타에 가장 관심이 있습니다.
그러나 Reachability.h는 wifi 또는 3G에 대한 확인 만 제공합니다.
어떻게 2G, 3G 등을 확인할 수 있습니까?
iPhone은 네트워크 유형 정보 (WWAN, Wi-Fi, 네트워크 없음) 만 API에 제공하기 때문에 2G/3G는 Reachability.h
또는 기타 타사 라이브러리를 통해 구분할 수 없습니다.
그러나 2G 또는 3G 네트워크의 IP 범위를 알면 iPhone이 사용하는 네트워크 속도/주파수를 결정할 수 있습니다.
누가 -1일까요? 이 대답은 절대적으로 정확합니다 = = – Raptor
이 기술로 3G에서 EDGE를 알 수 있습니다 : 아이폰 OS에서 Determining 3G vs Edge
를 7.0 이상 우리는 우리에게 네트워크 유형에 대한 필수 정보를 제공 할 수 CoreTelephony 프레임 워크를 가지고있다.
CTTelephonyNetworkInfo *telephonyInfo = [[CTTelephonyNetworkInfo alloc] init];
NSString *currentRadio = telephonyInfo.currentRadioAccessTechnology;
if ([currentRadio isEqualToString:CTRadioAccessTechnologyLTE]) {
// LTE
} else if([currentRadio isEqualToString:CTRadioAccessTechnologyEdge]) {
// EDGE
} else if([currentRadio isEqualToString:CTRadioAccessTechnologyWCDMA]){
// 3G
}
내가 발견 한 가장 좋은 방법 방법부터
+ (NSNumber *)dataNetworkTypeFromStatusBar {
UIApplication *app = [UIApplication sharedApplication];
NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
NSNumber *dataNetworkItemView = nil;
for (id subview in subviews) {
if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
dataNetworkItemView = subview;
break;
}
}
return [dataNetworkItemView valueForKey:@"dataNetworkType"]; }
/* Where
0 = No wifi or cellular
1 = 2G and earlier
2 = 3G
3 = 4G
4 = LTE
5 = Wifi
*/
가 상태 표시 줄의 값을 확인하고, 상태 표시 줄 응용 프로그램에 숨겨져 있지 않은지 확인하시기 바랍니다. 표시되지 않으면 메소드는 항상 0을 반환합니다.
ios sdk에는 많은 제한이 있습니다. 2g/3g/LTE의 신원 확인은 없습니다. 개발 시작 후 가난하다고 느낀다 –
[3G 대 에지 결정] (http://stackoverflow.com/questions/8400340/determining-3g-vs-edge) – BB9z