如何发现我在iPhone上使用的互联网连接类型

时间:2008-10-07 14:13:18

标签: iphone cocoa-touch

我需要知道应用程序运行时可用的互联网连接。我查看了Apple的Reachability示例,但这仅在wifi和运营商网络之间有所不同。我需要知道的是选择了什么载波网络,UMTS或EDGE或GPRS。

4 个答案:

答案 0 :(得分:7)

目前,此信息不可用。如果您需要此功能,请提交一个新错误,并提及这是错误6014806的副本。

答案 1 :(得分:2)

您可以通过检查往返服务器的延迟来猜测您所在的网络类型。如果你得到的数字不到100毫秒,你几乎肯定会使用WiFi。

GPRS和EDGE的延迟时间约为600毫秒。 UMTS / HSDPA是100-200ms。

资料来源:我的非正式测试和[AT& T] [1]数字。

答案 2 :(得分:1)

为什么不构建一个检测连接速度并将您的网站引导到适当的带宽级别的框架,而不是为3G,EDGE,GPRS,wifi宽带硬编码您的网站的不同版本?通过这种方式,您可以在慢速3G / wifi上获得适当的结果,并且它可以自然地扩展到下一代无线宽带(例如WiMax和802.11n),并且只需极少的努力/中断。

例如,您可以确定不同的带宽“检查点”(可能对应于3G,EDGE等),然后您可以执行诸如传输一些小数据或缓存小图像(例如图标)之类的操作所有带宽级别通用,在后台对下载速度进行基准测试,并相应地设置带宽级别。

答案 3 :(得分:1)

仅限文件

我喜欢Wedge的回答。我不确定该文件是否会被ISP缓存。你总是可以继续生成一个新的文件名,或者选择一个足够长的文件名,你只需要测试足够长的时间来获得结果。

简单延迟

使用延迟的想法很接近,但是Shivan提到这是不准确的。从澳大利亚到英国的用户将获得大约350毫秒的延迟,相对于可以看到它低至30-40毫秒的本地用户

解决方案:平均偏差

如果您使用3个数据包ping服务器,然后查看3G下的平均偏差(mdev),通常不到50毫秒。使用2G / EDGE时,它几乎总是超过100毫秒。我在65分钟到澳大利亚有一个异常值。

我的测试发现范围为4ms-38ms,在比利时202ms对澳大利亚的测试中只有一个例外。

希望这对某人有用..