tengo señal samsung reconoce qué puedo por pero movistar moviles mis internet funcionan esta entra disponible datos configurar conexion conectar conectado conecta celular android android-activity network-state

señal - ¿Cómo se comprueba la conexión a Internet en Android?



tengo señal pero no puedo conectar a internet en mi celular (8)

Corrección

if ( conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING ) { //notify user you are online }

debiera ser

if ( conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) { //notify user you are online }

Esta pregunta ya tiene una respuesta aquí:

Quiero verificar la conectividad a internet en cada actividad. Si se pierde, se debe mostrar un mensaje.

¿Alguien puede guiarme cómo lograr esto?


Esta es una verificación booleana para ver si tiene acceso a la red. No determina qué tipo de acceso a la red: móvil, wifi ... solo verifica si estás en línea.

boolean mobileNwInfo = false; ConnectivityManager conxMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); try { mobileNwInfo = conxMgr.getActiveNetworkInfo().isConnected(); } catch (NullPointerException e) { mobileNwInfo = false; } if ( mobileNwInfo == false ) { // Your code goes here... }


No está utilizando ConnectivityManager.getNetworkInfo(0).getState() y ConnectivityManager.getNetworkInfo(1).getState() correctamente, en lugar de codificar los valores (1) y (0) use ConnectivityManager.TYPE_WIFI y ConnectivityManager.TYPE_MOBILE


Puede hacer esto para diversos tipos de estado de la red

public void checkNetworkStatus(){ final ConnectivityManager connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE); final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if( wifi.isAvailable() ){ Toast.makeText(this, "Wifi" , Toast.LENGTH_LONG).show(); } else if( mobile.isAvailable() ){ Toast.makeText(this, "Mobile 3G " , Toast.LENGTH_LONG).show(); } else { Toast.makeText(this, "No Network " , Toast.LENGTH_LONG).show(); } }


Puede usar ConnectivityManager para verificar el estado de la red.

ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); if ( conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED ) { // notify user you are online } else if ( conMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.DISCONNECTED || conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.DISCONNECTED) { // notify user you are not online }

Tenga en cuenta que las constantes ConnectivityManager.TYPE_MOBILE y ConnectivityManager.TYPE_WIFI representan tipos de conexión y estos dos valores no son exhaustivos. Vea here para obtener una lista exhaustiva.

También asegúrese de tener el permiso requerido para monitorear el estado de la red. Debe agregar este permiso a su AndroidManifest.xml:

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


Puede verificar la cobertura de red y la disponibilidad de datos de Mobile y wi-fi directamente con

Para disponibilidad de cobertura de red ,

private boolean isNetworkAvailable() { ConnectivityManager conxMgr = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE); NetworkInfo mobileNwInfo = conxMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifiNwInfo = conxMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); return ((mobileNwInfo== null ? false : mobileNwInfo.isAvailable()) || (wifiNwInfo == null ? false : wifiNwInfo.isAvailable())); }

Para disponibilidad de datos si la red está disponible

private boolean isDataAvailable() { ConnectivityManager conxMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); NetworkInfo mobileNwInfo = conxMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifiNwInfo = conxMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); return ((mobileNwInfo== null? false : mobileNwInfo.isConnected() )|| (wifiNwInfo == null? false : wifiNwInfo.isConnected())); }


Registre un receptor de difusión para manejar CONNECTIVITY_ACTION . Vea este ejemplo completo . Debe actualizar una variable estática ''connectionAvailable'' que será accesible en todas partes y en todo momento a través de su getter respectivo.

Recuerde declarar el receptor de difusión en el archivo de manifiesto :

<receiver android:name=".NetworkConnectivityReceiver" android:enabled="true"> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> </intent-filter> </receiver>

En el asunto de "verificar cada actividad", puede estar interesado en usar una actividad base extendida por sus actividades y en administrar la prueba de conectividad y mostrar el mensaje.

Además, tenga en cuenta que el uso de eventos (no encuestas de actividades) será más eficiente.


Solo una conexión puede estar activa en cualquier punto. Entonces, una respuesta más simple es:

final ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo(); if (activeNetwork != null && activeNetwork.isConnected()) { // notify user you are online } else { // notify user you are not online }

También atiende cualquier tipo nuevo de red, como ConnectivityManager # TYPE_WIMAX

También asegúrese de tener el permiso requerido para monitorear el estado de la red. Debe agregar este permiso a su AndroidManifest.xml:

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