Не работает интернет проверка соединения android.net.isConected()
Этот вопрос связан с тем, как вы проверяете интернет-соединение в Android.
Решение @William мне очень помогает, но при ограниченном подключении оно не работает.
Я подключился к беспроводному модему, но этот модем не подключен к Интернету.
Согласно документации для Android эта функция должна выполнять всю работу, но я думаю, что данные, которые проверяются функцией, находятся только между android -> модемом, а не android -> webservice (internet).
Код @William:
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
}
Что я могу сделать, чтобы проверить интернет-соединение? Я что-то упустил?
2 ответа
Решение
Я думаю, что в качестве альтернативы вы могли бы сделать фактический HTTP-запрос к удаленному URL-адресу и посмотреть, будет ли он успешным.
Попробуй это
public static boolean isInternetConnection(Context mContext) {
final ConnectivityManager connMgr = (ConnectivityManager) mContext
.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()
&& wifi.getState() == NetworkInfo.State.CONNECTED) {
return true;
} else if (mobile.isAvailable()
&& mobile.getState() == NetworkInfo.State.CONNECTED) {
return true;
} else {
return false;
}
}
public static boolean isWifi(Context mContext) {
final ConnectivityManager connMgr = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifi.isAvailable()) {
return true;
} else {
return false;
}
}
public static boolean isOtherNetwork(Context mContext) {
final ConnectivityManager connMgr = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo mobile = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobile.isAvailable()) {
return true;
} else {
return false;
}
}
добавить разрешение в вашем манифесте
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>