iOS检测连接速度或types

可能重复:
iPhone检测3G或WiFi

有没有办法获得当前的networking速度,或者如果设备在EDGE / 3G / GPRS? 我可以使用Reachability来区分WiFI和WMAN,但这对我的应用程序来说还不够。

如果你真的需要知道,你将不得不testing它。

build立到低延迟的已知服务器的连接。 在一个单独的线程中,标记时间(时间A)并发送一个数据包(确保它是一个数据包)。 等待那个线程。 标记第一个数据包的时间(时间B)。 读完数据直到完成。 标记最后一个数据包的时间(时间C)。 确保服务器响应跨越至less三个数据包。

时间B – 时间A是一个非常粗略的延迟估计。 时间C – 时间B是一个非常粗略的带宽估计。

因为你想要尽可能的准确,所以你可以使用最低级别的networking访问(我相信iPhone是套接字)。 使用固定长度的随机数据块作为您的请求和响应。 请求的几个字节应该足够了,但是响应需要很好地构build。 确保服务器发送一个小的第一个数据包,然后发送一个足够大的数据包以填充三个或更多的数据包。

在这一点上,你将需要testing。 testing,testing,testing和testing。 testing不同的networkingtypes,testing不同数量的networkingstream量,使用交换networking进行testing,并testing任何您能想到的东西。