查找哪种internet连接类型I';我在iPhone上使用

查找哪种internet连接类型I';我在iPhone上使用,iphone,cocoa-touch,Iphone,Cocoa Touch,我需要知道当我的应用程序运行时,什么样的internet连接可用。我查看了苹果的可达性示例,但这只是wifi和运营商网络之间的区别。我需要知道的是选择了什么运营商网络,UMTS、EDGE或GPRS。目前,此信息不可用。如果您需要此功能,请提交一个新的错误,并说明这是错误6014806的副本。您可以通过检查往返服务器的延迟来猜测您所使用的网络类型。如果你得到的数据低于100毫秒,你几乎可以肯定是在WiFi上 GPRS和EDGE的延迟约为600毫秒。UMTS/HSDPA为100-200ms 来源:我

我需要知道当我的应用程序运行时,什么样的internet连接可用。我查看了苹果的可达性示例,但这只是wifi和运营商网络之间的区别。我需要知道的是选择了什么运营商网络,UMTS、EDGE或GPRS。

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

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

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


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

与其为3G、EDGE、GPRS、wifi宽带对不同版本的网站进行硬编码,不如构建一个框架来检测连接速度并将网站引导到适当的带宽水平?这样,您就可以在慢速3G/wifi上获得适当的效果,并且它自然可以以最小的工作量/中断扩展到下一代无线宽带(例如WiMax和802.11n)


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

仅限文件

我喜欢韦奇的回答。但我不确定ISP是否会缓存该文件。您可以始终生成一个新的文件名,或者选择一个足够大的文件名,只需测试足够长的时间即可得到结果

简单延迟

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

解决方案:平均偏差

如果你用3个数据包ping你的服务器,然后看看3G下的平均偏差(mdev),它通常在50ms以下。对于2G/EDGE,它几乎总是超过100ms。我得到一个异常值,距离澳大利亚65毫秒

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


希望这对某人有用

我认为这个方法不准确。延迟变化很大,取决于信号的接收。AT&T将互联网流量回送到互联网的几个门户。如果在连接上运行跟踪路由,则可以看到它。例如,我在波士顿北部,试图在Speedtest.net上对波士顿的一个测试点进行速度测试。。。这条线路从缅因州到弗吉尼亚州,再回到波士顿。苹果需要发布API,让您设置与运营商的连接方式/内容。您可以将手机置于测试模式(拨打3001#12345#),然后查看其中一些功能。