我熟悉使用Reachability来确定iOS设备上使用的互联网连接类型(如果有的话).不幸的是,这不是一个很好的连接质量指标.具有低信号强度的无线网络非常粗略,任何低于3巴的3G都是一场灾难(更不用说只允许EDGE连接的网络).
解决方法
务实的方法是在应用程序开始时下载托管在可靠的全球CDN上的一个中等大小的文件.您事先知道文件大小,您只需要测量所需的时间,进行简单的计算,然后就可以估算出连接的质量.
例如,jQuery UI源代码,unminified,gzipped重约90kB.在我的Mac上从http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.js下载它需要327ms.所以可以假设我至少有一个可以处理大约300kB / s的合适连接(事实上,它可以处理更多).
诀窍是找到原始文件大小和网络延迟之间的良好平衡,因为在这样的小文件上永远不会达到完全下载速度.另一方面,在启动应用程序后立即下载1MB肯定会对大多数用户造成不利影响,即使它可以让您更准确地测量连接速度.