如何计算连接速度

How to calculate connection speed

我正在开发一个广播应用程序,我需要知道用户的连接速度是否足够快,如果速度很慢,我会显示一条消息,说流式传输有时可能很慢。

我遇到的问题是计算用户的连接速度。

我已经阅读了一些关于此的意见,但我只找到了基于互联网类型(2g、3g、wi-fi)的答案。我找到了这个答案:Detect network connection type on Android 这几乎是我所需要的,但是方法 "isConnectionFast" 并不准确,因为它没有建立真正的测试连接,它只是基于一些属性。

我认为最好的办法是下载一个确定大小的图片,然后计算下载完成所用的时间。但我不知道如何在 android.

中做到这一点

谁能帮帮我?谢谢

看来您已经知道进行速度测试的基本步骤,但我想解释一下为什么在这种情况下这可能是浪费时间。

如果我们谈论的是蜂窝网络连接,则有指定速度的标准,您链接的答案是如何根据该标准进行估算的示例。当然,您永远不会获得全速,速度测试会提供更好的估计,但只是在那一刻。有很多因素可能会影响客户端的速度,而且大多数因素每秒都在变化,所以如果客户端是移动的,你在开始时所做的测试几乎没有用。对于 wifi,如果没有速度测试,估计速度会有点困难,因为带宽通常不受技术限制,但计划用户正在支付。不管怎样,这些速度对于无线电流来说几乎肯定是足够的。

你没有提供太多关于流本身的信息,但根据我(作为用户)的经验,对于 128kbps 流,EDGE 以上的一切都足够了,只要你的缓冲足以补偿由以下原因引起的短暂速度下降或连接丢失交接等