velocidad test saber puedo para online medir internet gratis como app aplicacion android mobile wifi monitor wifimanager

test - ¿Cómo puedo determinar la velocidad de Internet en mi aplicación de Android



medir velocidad internet wifi (3)

Para verificar la calidad del tráfico y la calidad de la conexión a Internet. Esta biblioteca puede ayudarte ...

Facebook - Clase de conexión de red

Network Connection Class es una biblioteca de Android que le permite conocer la calidad de la conexión a Internet del usuario actual. La conexión se clasifica en varias "Clases de conexión" que facilitan el desarrollo en contra. La biblioteca hace esto escuchando el tráfico de Internet existente realizado por su aplicación y notificándole cuando cambia la calidad de la conexión del usuario. Los desarrolladores pueden usar esta información de la clase de conexión y ajustar el comportamiento de la aplicación (solicitar imágenes o videos de menor calidad, programar con acelerador, etc.).

En mi aplicación, quiero que cuando haga clic en un botón, me muestre la velocidad exacta de Internet. Había leído todas las respuestas sobre esta pregunta, que ya se ha preguntado en este enlace, que determina la velocidad de Internet en Android , el cálculo de la velocidad de Internet en Android , la velocidad de Internet en la programación de Android, etc. Pero no encontré mi respuesta exactamente. Usé esto:

WifiInfo.getLinkSpeed ​​()

pero muestra la velocidad máxima. y también uso los códigos de esto:

TrafficStats

pero no funcionó para mí. Necesito mostrar mi velocidad de red (es decir, 100 kbps). ¿Cómo puedo hacer esto? Por favor, ayúdame.


WifiInfo.getLinkSpeed ​​le dará la velocidad máxima de su red wifi actual. Su velocidad wifi actual estará por debajo de este valor, dependiendo de qué tan lejos esté del punto de acceso, obstáculos, interferencias, ... Esta es su velocidad dentro de su red wifi. Si accede a un dispositivo dentro de su red, la transferencia será el mínimo entre su velocidad y la velocidad de otro dispositivo.

Si accede a Internet, su red wifi está conectada a internet y su velocidad dependerá de la tecnología utilizada (ADSL, cable, 4G, satélite, ...) y la capacidad de su proveedor de Internet (que está en el otro lado). de su conexión). Ambos valores suelen cambiar en el tiempo, ya que dependen de los patrones de uso (cantidad de usuarios concurrentes, capacidad de red, ...)

También tenga en cuenta que, cuando se conecta a Internet, realiza solicitudes a otro dispositivo (la mayoría de las veces a un servidor). La velocidad de transferencia que obtenga será la mínima entre su velocidad y la del servidor al que se está contactando.

Con todo, hay demasiados elementos desconocidos para predecir tu velocidad de Internet.

Sin embargo, siempre puede calcularlo, solo realice algunas solicitudes, mida cuántos Kbytes (o Megabytes) obtiene, calcule cuánto tiempo ha tardado y divida uno por el otro. Esta será su velocidad actual para esa conexión en particular.

Si desea valores más estables / confiables, debe repetir esta operación varias veces y usar el promedio. Esto es lo que hacen los servicios de speed tester (www.speedtest.net, testmy.net, ...).


Para determinar la velocidad de Internet en una aplicación de Android, primero debe descargar algún archivo de onlineserver. ¿Por qué tenemos que descargar el archivo? para verificar el promedio de la velocidad de descarga de Internet.

para eso necesitas codificar de esta manera

private class InternetSpeedTest extends AsyncTask<String, Void, String> { long startTime; long endTime; private long takenTime; @Override protected String doInBackground(String... paramVarArgs) { startTime = System.currentTimeMillis(); Log.d(TAG, "doInBackground: StartTime" + startTime); Bitmap bmp = null; try { URL ulrn = new URL(paramVarArgs[0]); HttpURLConnection con = (HttpURLConnection) ulrn.openConnection(); InputStream is = con.getInputStream(); bmp = BitmapFactory.decodeStream(is); Bitmap bitmap = bmp; ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 99, stream); byte[] imageInByte = stream.toByteArray(); long lengthbmp = imageInByte.length; if (null != bmp) { endTime = System.currentTimeMillis(); Log.d(TAG, "doInBackground: EndTIme" + endTime); return lengthbmp + ""; } } catch (Exception e) { e.printStackTrace(); } return null; } protected void onPostExecute(String result) { if (result != null) { long dataSize = Integer.parseInt(result) / 1024; takenTime = endTime - startTime; double s = (double) takenTime / 1000; double speed = dataSize / s; Log.d(TAG, "onPostExecute: " + "" + new DecimalFormat("##.##").format(speed) + "kb/second"); } }

En este código se descargará una imagen de Aquí

En doInBackground calcularás el tamaño de la imagen después de la descarga completada aquí

Bitmap bitmap = bmp; ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 99, stream); byte[] imageInByte = stream.toByteArray(); long lengthbmp = imageInByte.length

y lo último es calcular takenTime restando el tiempo de inicio de la forma endtime y la velocidad es (size / takenTime)

Espero que te sirva