funciona - Cómo verificar la conectividad de Internet dentro de la red en Android(utilizando Internet de algún otro dispositivo a través de HOTSPOT)
mi hotspot no funciona (2)
Pruebe la siguiente función para verificar su conexión a internet:
public static boolean isInternetConnected(Context mContext) {
try {
ConnectivityManager connect = null;
connect = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connect != null) {
NetworkInfo resultMobile = connect
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo resultWifi = connect
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if ((resultMobile != null && resultMobile
.isConnectedOrConnecting())
|| (resultWifi != null && resultWifi
.isConnectedOrConnecting())) {
return true;
} else {
return false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
Agregue los siguientes permisos a su archivo de manifiesto,
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Tengo un requisito donde quiero comprobar si hay conectividad a Internet cuando estoy conectado a la red.
Por ejemplo, tengo el dispositivo A y el dispositivo B.
El dispositivo A está conectado con un punto de acceso con el del dispositivo B. En el dispositivo A, lo obtengo como conectado con Wi-Fi y en el dispositivo B: un dispositivo conectado con un punto de acceso.
Ahora, si quito Internet del dispositivo B (no del punto de acceso de conexión), en el dispositivo A todavía se muestra: conectado con Wi-Fi pero no hay conectividad a Internet.
Las clases como ConnectivityManager ayudan a determinar si un dispositivo está conectado a la red y no a la conectividad de Internet.
Quiero hacer un seguimiento de este problema. ¿Hay alguna manera de lograr esto?
Puede ser una solución ridícula, pero creo que también podría ser una solución real:
public boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
if (urlc.getResponseCode() == HttpURLConnection.HTTP_OK) {
return new Boolean(true);
}
} catch (MalformedURLException mue) {
// TODO Auto-generated catch block
mue.printStackTrace();
} catch (IOException ie) {
// TODO Auto-generated catch block
ie.printStackTrace();
}
}
return false;
}