如何在 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 设备的主要内容,如果未能解决你的问题,请参考以下文章