现在的位置: 首页 > 综合 > 正文

ios7 蜂窝网络

2017年12月08日 ⁄ 综合 ⁄ 共 1438字 ⁄ 字号 评论关闭
在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。

抱歉!评论已关闭.