有没有办法知道 iPhone 连接的是哪个网络(LTE 或 GSM)?

7

随着iOS 6和iPhone 5的发布,我正在努力弄清楚我的应用程序如何知道手机是否处于LTE模式还是GSM模式。

我没有看到任何更新的Reachability API,可以给出它是否连接到Wifi vs WWAN,但我需要知道是什么类型的WWAN连接。

有什么想法吗?

2个回答

7

iOS 7及以上版本可以通过CoreTelephony框架的CTTelephonyNetworkInfocurrentRadioAccessTechnology属性来获取此信息。

#import <CoreTelephony/CTTelephonyNetworkInfo.h>

CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new];

if ([networkInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) {
    // ...
}

+1 感谢您 - 我也在iOS7中找到了这个API。终于等到了! - brianestey
有人知道为什么currentRadioAccessTechnology方法没有文档吗?https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTTelephonyNetworkInfo/Reference/Reference.html - Robert
尽管此代码可以检测您的设备支持哪种无线电接入技术,但并不能提供其当前使用的技术。因此,如果我有一部能够支持LTE的iPhone,但恰巧身处只有3G数据的区域,此代码仍会报告LTE。 - Adam W. Dennis

2
对于iO6及以下版本,您无法这样做。
我在苹果开发者论坛上提出了这个问题,苹果确认他们还没有这个功能。
您可以提交功能请求错误报告。我已经提交了一个(#12375460),但是重复的次数越多,它被实现的可能性就越大。
此外,这是此问题的重复。

这真是太遗憾了,因为这似乎是一个常见的在线问题。我也会添加一个功能请求,看看能否帮助推动苹果实现这一点。 - brianestey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接