Как определить, что WIFI подключен, но нет интернета (ограничение данных превышено / нет сигнала)
Я хочу проверить, подключен ли '' Wi-Fi '', но как определить, доступен ли интернет? Потому что в моем "MainActivity.java" я проверяю интернет-соединение, а также доступность интернета, следуя коду.
public static boolean isConnectedToInternet(Context context) {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm.getActiveNetworkInfo() != null
&& cm.getActiveNetworkInfo().isAvailable()
&& cm.getActiveNetworkInfo().isConnected()) {
Log.d("INTERNET_CONNECTION", "Internet is working");
return true;
} else {
Log.d("INTERNET_CONNECTION", "Internet is Not Available");
return false;
}
}
Если Интернет доступен (данные и сигнал в порядке), просмотрите "Индикатор выполнения" и загрузите содержимое, а процесс загрузки завершится, а "Индикатор выполнения" будет невидим. Если Интернет недоступен (нет данных или нет сигнала), невидимый "индикатор выполнения" и отображать ошибку.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (isConnectedToInternet(context)== true)
{
progressLayout.setVisibility(View.VISIBLE);
// load the content
}
else
{
progressLayout.setVisibility(View.GONE);
Toast.makeText(this, "No Internet", Toast.LENGTH_LONG).show;
}
}
Если интернет доступен, код работает нормально, но индикатор "прогресс" всегда отображается, когда интернет недоступен. (нет данных или нет сигнала)
1 ответ
public static boolean isNetworkAvailable(Context activity) {
ConnectivityManager connectivity = (ConnectivityManager) activity
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (NetworkInfo anInfo : info) {
if (anInfo.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}