我目前正在使用苹果可达性示例来检测可用连接,但我需要能够检测 WWAN 连接是 2G 还是 3G。出于应用程序下载文件以确定信号速度的目的,这不是解决方案,并且使用状态栏读取连接也已被取消。
我目前正在使用 MKNetworkKit 来处理我的请求。
任何帮助表示赞赏谢谢。
我目前正在使用苹果可达性示例来检测可用连接,但我需要能够检测 WWAN 连接是 2G 还是 3G。出于应用程序下载文件以确定信号速度的目的,这不是解决方案,并且使用状态栏读取连接也已被取消。
我目前正在使用 MKNetworkKit 来处理我的请求。
任何帮助表示赞赏谢谢。
该SCNetworkReachability
界面可以帮助您。基本上,您创建一个所谓的可达性引用,然后调用SCNetworkReachabilityGetFlags
它以获取有关连接的信息。
返回的标志包括kSCNetworkReachabilityFlagsIsWWAN
,它告诉您是通过 WiFi 还是蜂窝网络连接。不过,AFAIK 不能用来区分 2G 和 3G。
有关实现,请参阅Apple 的 Reachability 示例应用程序。在大多数情况下,您应该能够直接在项目中使用包含的 Reachability 类。
您无法检测网络类型,Reachability 只能管理这些网络状态:
typedef enum
{
// Apple NetworkStatus Compatible Names.
NotReachable = 0, // No connection
ReachableViaWiFi = 2, // Connecte on WIFI
ReachableViaWWAN = 1 // Connected on 2G, 3G or 4G network.
} NetworkStatus;