如何在 iOS7 中以编程方式找到连接 3G 网络或 Wifi 的 iPhone 设备

Posted

技术标签:

【中文标题】如何在 iOS7 中以编程方式找到连接 3G 网络或 Wifi 的 iPhone 设备【英文标题】:How can i find programmatically iPhone device connected 3G network or Wifi in iOS7 【发布时间】:2014-06-06 19:55:16 【问题描述】:

您好,我需要确定 iPhone 互联网连接的是 3G 还是 2G 还是 WIFI 网络 任何建议

谢谢

斯拉万

【问题讨论】:

为什么要否决我的问题请澄清我的疑问...? 请提供任何示例代码或任何对我有帮助的链接... 请参考 Ben Groot 对此问题的回答 ***.com/questions/11049660/…。并且它的 Core Telephony 框架不是 CFNetworking 【参考方案1】:

从此链接下载适用于 iOS 的可达性类:- https://github.com/tonymillion/Reachability

1)在您的项目中添加 Reachability.h &.m,确保您通过添加标志 -fno-objc-arc 使其与 ARC 兼容

2)现在,检查视图控制器中的连接类型

  Reachability *reachability = [Reachability reachabilityForInternetConnection];
    [reachability startNotifier];

    NetworkStatus status = [reachability currentReachabilityStatus];

    if(status == NotReachable) 
    
        //No internet
    
    else if (status == ReachableViaWiFi)
    
        //WiFi
    
    else if (status == ReachableViaWWAN) 
    
        //3G
    

【讨论】:

谢谢,但是当用户通过 3G 或 Wifi 网络连接到我的应用程序时,我需要显示警报,如果互联网连接不可用,则显示警报,请检查您的网络连接【参考方案2】:

您可以使用Reachability library written by tonymillion。 如果你不想使用 ARC,还有 Apple Reachability 库。

【讨论】:

【参考方案3】:

还可以看看

您将看到 CTTelephonyNetworkInfo 上公开了 currentRadioAccessTechnology 属性。

CTTelephonyNetworkInfo *netInfo = [[CTTelephonyNetworkInfo alloc] init];
NSLog(@"Radio access technology:\n%@",
       netInfo.currentRadioAccessTechnology);

您可以通过以下方式订阅更改:

[NSNotificationCenter.defaultCenter
    addObserverForName:CTRadioAccessTechnologyDidChangeNotification
                object:nil
                 queue:nil
            usingBlock:^(NSNotification __unused *notification) 
                CTTelephonyNetworkInfo *current =
                    [[CTTelephonyNetworkInfo alloc] init];
                NSLog(@"Updated Radio access technology:\n%@",
                       current.currentRadioAccessTechnology);
            ];

【讨论】:

以上是关于如何在 iOS7 中以编程方式找到连接 3G 网络或 Wifi 的 iPhone 设备的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式通过 ipad 检测并连接到 3G 网络

如何以编程方式同时使用 WiFi 和 3G 网络 [关闭]

在运行中以编程方式更改 iOS7 状态栏颜色?

如何在 iOS 7 中以编程方式正确关闭 UIAlertView?

如何在android中找到GPRS/3G网络数据传输速度?

如何在 MAC 中以编程方式设置 *** 连接?