La velocidad de la red se puede definir como el número total de paquetes que intercambian el cliente y el servidor por segundo, generalmente calculado en Megabits por segundo (Mbps). Un bit es un 0 o un 1. 1 megabit implica 1 millón de bits. Por lo general, el tamaño del paquete depende del protocolo y de varios otros factores y, por lo general, varía a gran escala. En este artículo, se implementa un programa que nos obtiene velocidades de carga y descarga con el servidor. Tenga en cuenta que el programa es exitoso cuando el dispositivo está conectado a una red.
Este programa podría usarse tanto para la investigación como para la optimización:
- Investigación: se podría derivar el contenido y las velocidades disponibles para correlacionar la dependencia de la red.
- Optimización: uno podría monitorear continuamente la velocidad y el contexto, para evitar la conexión cuando no se requiera o reducir la calidad de un video que se transmite dependiendo de las velocidades actuales.
Acercarse:
Paso 1: crea una actividad vacía en Android Studio. Para crear uno, siga este artículo : https://www.geeksforgeeks.org/android-how-to-create-start-a-new-project-in-android-studio/ . Compruebe si el idioma principal seleccionado es Kotlin .
Paso 2: vaya al archivo AndroidManifest.xml y agregue el permiso de uso ACCESS_NETWORK_STATE .
XML
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.geeksforgeeks.networkspeed"> <!--Add this permission--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-----------------------> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Paso 3: en el archivo activity_main.xml, agregue un botón. Bellow es el código para el mismo.
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!--Create a Button--> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Show Speed" android:layout_centerInParent="true" /> </RelativeLayout>
Paso 4: en MainActivity.kt, agregue el siguiente código. setOnClickListener se agrega con el botón, que cuando se hace clic muestra la velocidad de carga y la velocidad de descarga como un brindis en la pantalla.
Kotlin
package org.geeksforgeeks.networkspeed import android.content.Context import android.net.ConnectivityManager import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.Toast import androidx.annotation.RequiresApi class MainActivity : AppCompatActivity() { @RequiresApi(Build.VERSION_CODES.M) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Declaring Button from the layout file val btn = findViewById<Button>(R.id.btn) // Action when the button id clicked btn.setOnClickListener { // Connectivity Manager val cm = applicationContext.getSystemService (Context.CONNECTIVITY_SERVICE) as ConnectivityManager // Network Capabilities of Active Network val nc = cm.getNetworkCapabilities(cm.activeNetwork) // DownSpeed in MBPS val downSpeed = (nc.linkDownstreamBandwidthKbps)/1000 // UpSpeed in MBPS val upSpeed = (nc.linkUpstreamBandwidthKbps)/1000 // Toast to Display DownSpeed and UpSpeed Toast.makeText(applicationContext, "Up Speed: $upSpeed Mbps \nDown Speed: $downSpeed Mbps", Toast.LENGTH_LONG).show() } } }
Producción:
Publicación traducida automáticamente
Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA