【发布时间】:2015-04-14 06:56:06
【问题描述】:
我想知道我的设备是否专门连接到 Wi-Fi 或 3G 或 4G。目前我正在使用 Apple Reachability 类来检查 Internet 连接。
当我将测试版应用程序提供给客户端时,即使设备连接到 4G 网络,它也将连接的网络显示为 Wi-Fi 而不是 4G。在我的开发位置,没有要测试的 4G 网络。所以有没有可以模拟 4G 网络的工具?
注意:
- 我尝试使用 Xcode 工具 Network Link Conditioner,但这样我只能模拟网络的速度,但不能模拟网络的类型。
- 我也尝试使用 CoreTelephony 框架。但使用它我在 iPad 和 iPhone 上得到了不正确的结果。
iPhone 5:
- 通过获取 CTRadioAccessTechnologyHSDPA 的 SIM 连接到 Wi-FI
- 连接到 Wi-Fi 时 SIM 不为 NULL
- 连接到 3G 获得 CTRadioAccessTechnologyHSDPA
iPad:
连接到 WI-FI 但我得到 NULL
当设备中没有 SIM 卡时 API 返回 NULL 值。
那么有没有什么有效的方法可以知道设备(iPad 和 iPhone)是连接到 Wi-FI 还是 3G 还是 4G。
【问题讨论】:
-
在 3G 和 4G 上对您的应用进行 Beta 测试的唯一可能解决方案是在设备上使用 SIM。你可以在模拟器上测试一下。
-
您可以使用github.com/tonymillion/Reachability并检查可达块中的
isReachableViaWWAN属性 -
@JayprakashDubey 我可以测试 3G 和 Wi-Fi 但不能测试 4G,因为我所在的位置没有 4G 服务。
-
就指示的连接类型而言,3G 和 4G 之间应该没有区别 - 您是通过 WiFi 连接还是通过 WWAN (3G/4G) 连接
-
@Paulw11 是的,这很好。实际上问题是即使设备连接到 4G API 也返回可通过 Wi-FI 而不是 WWAN 访问。
标签: ios ios-simulator reachability