Método que comprueba conexión a Internet Android

publicado por: Anonymous

Tengo un splash screen en mi aplicación donde quiero que compruebe mediante un método si hay conexión a internet. Si la hay que prosiga con la ejecución y si no detecta conexión a internet que cierre la aplicación de forma correcta con un mensaje de error.

solución

Para comprobar la conexión a internet puedes ver:

¿cómo comprobar la conexión a internet?

A partir de Android 10 el uso de la clase NetWorkInfo y sus métodos es obsoleto, ahora se debe hace uso de la clase ConectivityManager y metodo getNetworkCapabilities() o Clase NetworkCapabilities

Usa el método especificado:

public static boolean isOnline(Context context) {

 ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

 if (connectivityManager != null) {
       NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
        if (capabilities != null) {
            if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
                Log.i(TAG, "NetworkCapabilities.TRANSPORT_CELLULAR");
                return true;
            } else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
                Log.i(TAG, "NetworkCapabilities.TRANSPORT_WIFI");
                return true;
            }  else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)){
                Log.i(TAG, "NetworkCapabilities.TRANSPORT_ETHERNET");
                return true;
            }
        }
    }

 return false;

}

y agregar los permisos en tu AndroidManifest.xml:

  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.INTERNET" />

La implementación se realizaría de esta forma:

if(isOnline(getApplicactionContext()){
   //Continua...Aquí puedes agregar el intent a MainActivity.

}else{
  //termina aplicación, si estas en SplashActivity.
   Toast.makeText(getApplicationContext(),"No existe conexión a Internet, intente mas tarde...", Toast.LENGTH_SHORT).show();
   finish();
}

Metodo anterior.


public static boolean isOnline(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
return networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected();
}

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *