Итак, я нашел this answer здесь. Но я не могу заставить его работать, поскольку функция isNetworkAvailable не определяется при вызове с параметром типа контекста. Это код, который я использовал:Почему приложение не запускает этот код?
private boolean isNetworkAvailable(Context context)
{
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if(ni!= null && ni.isConnected())
{
return true;
}
return false;
}
public boolean dostupanInternet(Context context)
{
if(isNetworkAvailable(context))
{
try
{
HttpURLConnection url = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
url.setRequestProperty("User-Agent", "test");
url.setRequestProperty("Connection", "close");
url.setConnectTimeout(1000);
url.connect();
return(url.getResponseCode() == 200);
}
catch(IOException e)
{
Log.e("LOG_TAG","Povezivanje sa internetom nije uspelo",e);
}
}
else
{
Log.d("LOG_TAG", "Povezivanje sa internetom nije uspelo");
}
return false;
}
Но когда я запускаю это возвращает фатальную ошибку и заставляет приложение к выключению. Итак, мой вопрос: что вызывает фатальную ошибку (очевидно, необработанное исключение) и какой код заставит меня пройти проверку доступности Интернета?
*, что вызывает фатальную ошибку (очевидно, необработанное исключение) * Стек трассировки покажет вам. Также убедитесь, что сетевые операции не выполняются в основном потоке (UI). –
Также имейте в виду, что для вашего кода требуется разрешение 'ACCESS_NETWORK_STATE'. – CommonsWare
Я добавил оба разрешения ACCESS_NETWORK_STATE и INTERNET. Спасибо за помощь вам обоим – NitroNbg