4

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

4

4 回答 4

7

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

于 2008-10-07T15:00:35.137 回答
2

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

GPRS 和 EDGE 以大约 600 毫秒的延迟运行。UMTS/HSDPA 为 100-200 毫秒。

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

于 2008-11-04T03:28:25.653 回答
1

与其为 3G、EDGE、GPRS、wifi 宽带硬编码您网站的不同版本,不如构建一个框架来检测连接速度并将您的网站引导至适当的带宽水平?这样,您将在慢速 3G / wifi 上获得适当的结果,并且它会自然地扩展到下一代无线宽带(例如 WiMax 和 802.11n),而只需最少的努力/中断。

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

于 2009-07-14T06:00:36.713 回答
1

仅文件

我喜欢 Wedge 的回答。我不确定该文件是否不会被 ISP 缓存。您可以始终生成一个新文件名,或者选择一个足够大的文件名,以便您只测试足够长的时间才能获得结果。

简单的延迟

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

解决方案:平均偏差

如果你用 3 个数据包 ping 你的服务器,然后查看 3G 下的平均偏差 (mdev),它通常在 50 毫秒以下。使用 2G/EDGE 几乎总是超过 100 毫秒。我在 65 毫秒到 AUS 时得到了一个异常值。

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

希望这对某人有用..

于 2012-04-17T13:35:07.387 回答