2013-07-11 63 views
3

我正在使用WiFi以及iPhone的蜂窩數據調用Web服務的應用程序。我的應用程序在WiFi和3G網絡上運行良好,但它不適用於4G網絡。所以請告訴我如何檢測應用程序是通過3g還是4G連接,以及如何解決與4G網絡有關的問題。如何檢測網絡類型,即3G/4G?

任何幫助將是可觀的。 在此先感謝。

回答

1

這裏是同樣的問題,可能是婁代碼的例子是可以幫助你。使用私有API,您可以直接在狀態欄中讀取這些信息。

https://github.com/nst/MobileSignal/blob/master/Classes/UIApplication+MS.m

+ (NSNumber *)dataNetworkTypeFromStatusBar { 

    UIApplication *app = [UIApplication sharedApplication]; 

    UIStatusBar *statusBar = [app valueForKey:@"statusBar"]; 

    UIStatusBarForegroundView *foregroundView = [statusBar valueForKey:@"foregroundView"]; 

    NSArray *subviews = [foregroundView subviews]; 

    UIStatusBarDataNetworkItemView *dataNetworkItemView = nil; 

    for (id subview in subviews) { 
     if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) { 
      dataNetworkItemView = subview; 
      break; 
     } 
    } 

    return [dataNetworkItemView valueForKey:@"dataNetworkType"]; 
} 

幸得: -

Determining 3G vs Edge

Objective-C determine data network type of the iOS device

+0

我需要這個結果時,我的應用程序在後臺 –

+0

@Nitin Gohel,我認爲這是一個私人API如此可能會被蘋果拒絕。難道覈准使用上述代碼的蘋果你的應用程序?請建議我,讓我可以在蘋果商店上傳應用程序之前的想法對此。 –

+0

嗡嗡聲可能是,現在它從蘋果方面 –