loading...

martes, 6 de diciembre de 2011

Android. Si vamos a reproducir un video, necesitaremos conocer el tiempo del buffer, ya que al Api de Media Player no lo hace.

Para leer cuantos bytes se han bajado a través de una red wifi.

También podremos chequear la velocidad de conexión, mirando lo siguiente:

tiempo = curReadBytes syncFetchReceivedBytes ();
cadena strSpeed ​​= (curReadBytes-lastReadBytes) / 1024 kbps
lastReadBytes = curReadBytes;

Código de ejemplo

private long parserNumber(String line) throws Exception {
long ret=0;
String[] delim = line.split(" ");
if(delim.length >= 1){
ret = Long.parseLong(delim[0]);
}
return ret;
}   public long syncFetchReceivedBytes() {
// TODO Auto-generated method stub
ProcessBuilder cmd;
long readBytes=0;
BufferedReader rd = null;
try {
String[] args = { "/system/bin/cat", "/proc/net/dev" };
cmd = new ProcessBuilder(args);
Process process = cmd.start();
rd = new BufferedReader(new InputStreamReader(
process.getInputStream()));
String line;
int linecount = 0;
while ((line = rd.readLine()) != null) {
linecount++;
if(line.contains("lan0")||line.contains("eth0")){
String[] delim = line.split(":");
if(delim.length>=2){
readBytes=parserNumber(delim[1].trim());
break;   }
}
}
rd.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
if (rd != null) {
try {
rd.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return readBytes;
}


No hay comentarios:

Publicar un comentario