サーバーからデータを受信するアプリケーションを使用している場合、ユーザーがcellular data
(Not3G
またはWIFI
) に接続すると、データを受信するのに時間がかかります。
私はこの回答からこのコードを実装しましたが、それが効果的かどうかはわかりません。正確な型が得られることもあれば、そうでないこともあります。
ここに私のコードがあります:
- (void)newtworkType {
NSArray *subviews = [[[[UIApplication sharedApplication] valueForKey:@"statusBar"] valueForKey:@"foregroundView"]subviews];
NSNumber *dataNetworkItemView = nil;
for (id subview in subviews) {
if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
dataNetworkItemView = subview;
break;
}
}
switch ([[dataNetworkItemView valueForKey:@"dataNetworkType"]integerValue]) {
case 0:
NSLog(@"No wifi or cellular");
break;
case 1:
NSLog(@"2G");
break;
case 2:
NSLog(@"3G");
break;
case 3:
NSLog(@"4G");
break;
case 4:
NSLog(@"LTE");
break;
case 5:
NSLog(@"Wifi");
break;
default:
break;
}}
これは私ができる最善のことですか??、私はApple Reachability exampleを試しましたが、私の場合は役に立たないかどうreachabilityForInternetConnection
かを判断できます。reachabilityForLocalWiFi
前もって感謝します。