gpt4 book ai didi

java - Android - 如何计算下载文件所需的时间?

转载 作者:行者123 更新时间:2023-11-29 03:19:23 25 4
gpt4 key购买 nike

在我的 Android 应用程序中,我使用 WIFI 链接速度来获取 WIFI 的速度并在下载文件之前获取文件的长度内容然后我试图在下载文件之前获取估计的下载时间但是我得到的时间不正确我不知道为什么!

这是我估计下载前时间的代码

  URL u = new URL(url);
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.connect();
contentLength = Long.parseLong(c.getHeaderField("Content-Length"));
System.out.println("content"+contentLength);
float contentLength_float=contentLength/(float)(1000*1000);//migabyte
float speed=((float)(mActivity.speed_wifi()))/(float)8;//convert mbps(migabit) to migabyte ps
float sec=contentLength_float/speed;//get the sec from m/m/s

和函数wifi速度()

     public int speed_wifi()
{
WifiManager mainWifi;
mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = mainWifi.getConnectionInfo();
int speed=0;
if(wifiInfo.getBSSID()!=null)
{
speed=wifiInfo.getLinkSpeed();
}
return speed;
}

最佳答案

使用该功能得到的wifi链接速度是手机wifi所能达到的最大速度,并非实际速度。在下载开始之前无法确定 wifi 速度。您可以做的是,根据当前下载速度开始显示估计的下载时间。为此——

  1. 找出在 2 秒这样的一小段时间内下载了多少数据,这将是 current_speed = data_downloaded/time(时间可以是 2 秒或任何你想要的)
  2. 现在估计的时间将为 file_size/current_speed。

因此,通过这种方式,您可以在下载开始后的 1 或 2 秒内开始显示估计时间。

关于java - Android - 如何计算下载文件所需的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24645750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com