如何获得互联网连接延迟/ping?

问题描述

我需要以毫秒为单位获取当前的互联网连接延迟。在 Stack Overflow 上做了研究之后,我发现这个代码可以得到延迟:

            String host = "www.google.com";
            int timeout = 10000;
            long beforeTime = System.currentTimeMillis();
            boolean reachable =  InetAddress.getByName(host).isReachable(timeout);
            long afterTime = System.currentTimeMillis();
            long latency = afterTime - beforeTime;

我也试过 8.8.8.8 是 google DNS IP,结果是一样的。

问题是latency变量在某些设备中非常大,异常值,例如,有时在Pixel XL中为60,有时在400 ms,而在2014年使用android的慢速设备中始终在3000 ms左右5.0.同样在模拟器中总是在 6000 毫秒左右,但我认为模拟器没有给出正确的值。

在装有 Android 5.0 的设备中,该代码返回大约 3000 毫秒的延迟,当我打开 www.google.com 时,速度非常快,并且如果我在设备的导航器中尝试各种在线互联网连接测试,延迟是 30 毫秒,所以这 3000 毫秒的延迟是错误的。其他设备也是如此。

如何在 Android 中正确测量延迟?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)