Метод networkInfo.isConnected() возвращает true, даже если нет интернета?
я разрабатываю это приложение, в основной деятельности я проверяю интернет-соединение следующим образом:
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
LoaderManager loaderManager = getSupportLoaderManager();
loaderManager.initLoader(1, null, this);
}
когда я иду в HOURLY
активность я проверяю интернет таким же образом, как указано выше на onCreate()
метод.
мой вопрос, когда я открываю основной вид деятельности, я отключаю интернет и иду на HOURLY
действие для обработки "нет интернет-исключения", но networkInfo.isConnected() в HOURLY
возвращение активности true
почему интернет все еще подключен???
1 ответ
Я не знаю, что вы собираетесь делать с приведенным выше кодом, но я уверен, что это сработает.
getActiveNetworkInfo()
метод ConnectivityManager
возвращает NetworkInfo
экземпляр, представляющий первый подключенный сетевой интерфейс, который он может найти, или ноль, если ни один из интерфейсов не подключен. Проверка, возвращает ли этот метод значение NULL, должна быть достаточной, чтобы определить, доступно ли интернет-соединение или нет.
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
Вам также понадобится:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
в вашем андроид манифесте.
Обратите внимание, что наличие активного сетевого интерфейса не гарантирует доступности определенной сетевой службы. Проблемы с сетью, время простоя сервера, низкий уровень сигнала, порталы с ограниченным доступом, фильтры содержимого и т. П. Могут помешать вашему приложению добраться до сервера. Например, вы не можете точно сказать, может ли ваше приложение связаться с Twitter, пока вы не получите действительный ответ от службы Twitter.