Так что я вызываю несколько разных веб-сервисов в своем приложении, но хочу проверить, не подключено ли устройство к Интернету до вызова службы.Доступность сети Android (автономный режим)?
Сначала я создал статический флаг.
public static bool IsOfflineMode = false;
И перед каждой услугой называется, добавить следующее:
if(IsOfflineMode) {
return;
}
Это, как я проверяю, если устройство находится в Интернете или нет.
public bool isConnected()
{
ConnectivityManager connectManager = (ConnectivityManager)GetSystemService (Context.ConnectivityService);
NetworkInfo netInfo = connectManager.ActiveNetworkInfo;
if (netInfo != null && netInfo.IsConnectedOrConnecting) {
NetworkInfo wifi = connectManager.GetNetworkInfo (ConnectivityType.Wifi);
NetworkInfo mobile = connectManager.GetNetworkInfo (ConnectivityType.Mobile);
if ((mobile != null && mobile.IsConnectedOrConnecting) || (wifi != null && wifi.IsConnectedOrConnecting)) {
return true;
} else {
return false;
}
} else {
return false;
}
}
А затем присвоить значение isConnected()
к IsOfflineMode
.
IsOfflineMode = !isConnected();
Но я не хочу называть isConnected()
каждый раз.
Как я могу установить триггер, чтобы, когда устройство переходит в автономный режим/онлайн, оно меняет значение IsOfflineMode
?
Спасибо за ваше время.
Это правильно. Читайте далее в документах: http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html –