Ich versuche, einen Download-Geschwindigkeitstest zu berechnen berechnen. Eine Menge Informationen in Stackoverflow gefunden, aber nichts hilft mir. Die endgültige Berechnung ist keine Logik. Versucht, die Download-Geschwindigkeit im While-Thread zu kennen. Anbei mein Code, den ich gefunden habe.Android berechnen Download-Geschwindigkeitstest
public void run() {
OutputStream out = null;
URLConnection conn = null;
InputStream in = null;
try
{
URL url1 = new URL("test");
out = new BufferedOutputStream(new FileOutputStream(getVideoFile().getPath()));
conn = url1.openConnection();
in = conn.getInputStream();
long start = System.currentTimeMillis();
byte[] buffer = new byte[1024];
int numRead;
long numWritten = 0;
while ((numRead = in.read(buffer)) != -1)
{
out.write(buffer, 0, numRead);
numWritten += numRead;
long end = System.currentTimeMillis();
if ((end - start)>0) {
double rate = 1000f * numWritten/(end - start) ;
Log.d("downloadmanager","speed "+rate);
}
}
}
catch (Exception ex)
{
Log.d("downloadmanager","Unknown Error: " + ex);
}
finally
{
try
{
if (in != null)
{
in.close();
}
if (out != null)
{
out.close();
}
}
catch (IOException ex)
{
Log.d("downloadmanager", "Unknown Error: " + ex);
}
}
}
}).start();
Vielen Dank für Ihre Hilfe.
was meinst du mit * ist nicht logisch. *? – Blackbelt
Die Zahlen sind sehr hoch und ich bin mir nicht sicher, ob die Berechnung richtig ist. –