ios7 蜂窩網絡

在iOS7以前,是使用Reachability來檢測設備是否鏈接到WWAN或是Wifi的。iOS7在這個基礎上更進了一步,它會告訴你的設備鏈接上的是那種蜂窩網絡,好比說是Edge網絡,HSDPA網絡,或是LTE網絡。告訴用戶他們鏈接上的是哪一種網絡能夠優化用戶體驗,由於這樣他們會知道網速如何,不會去請求須要高網速的網絡請求。
 
這是CTTelephonyNetworkInfo的部分功能,它是CoreTelephony框架的一部分。iOS7還增長了currentRadioAccessTechnology屬性和CTRadioAccessTechnologyDidChangeNotification到這個類。還有一些新的字符串常量來定義可能的值,好比說是CTRadioAccessTechnologyLTE。
 
如下代碼告訴你在app delegate中如何使用這個新功能:
 
 
 
 
  1. @import CoreTelephony.CTTelephonyNetworkInfo; // new modules syntax! 
  2.  @interface AppDelegate ()  
  3. // we need to keep a reference to the CTTelephonyNetworkInfo object, otherwise the notifications won't be fired! 
  4. @property (nonatomic, strong) CTTelephonyNetworkInfo *networkInfo; 
  5.   @end 
  6.   
  7. @implementation ViewController  
  8.   
  9. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
  10.   // whatever stuff your method does... 
  11.   
  12.   self.networkInfo = [[CTTelephonyNetworkInfo alloc] init]; 
  13.   NSLog(@"Initial cell connection: %@", self.networkInfo.currentRadioAccessTechnology); 
  14.   [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(radioAccessChanged) name:
  15. CTRadioAccessTechnologyDidChangeNotification object:nil]; 
  16.   
  17.   // whatever stuff your method does... 
  18.   
  19. - (void)radioAccessChanged { 
  20.   NSLog(@"Now you're connected via %@", self.networkInfo.currentRadioAccessTechnology); 
  21.   
  22. @end 
注意:研究一下CTTelephonyNetworkInfo.h 文件來看看是否有其餘無線網絡類型的的字符串常量。若是設備沒有連上的話,currentRadioAccessTechnology 則會返回nil。
相關文章
相關標籤/搜索