Проверяем наличие подключения к сети в Android

Сегодня трудно себе представить какое-либо программное обеспечение не взаимодействующее с глобальной сетью. Платформа Android не стала исключением, но перед обращением в сеть правилом “хорошего тона” является проверка наличия соединения, во избежание зависаний и глюков приложения.

Существует лишь малая часть, скорее даже бесконечно малая  часть, android приложений, которые не используют возможности сети и связь с “внешним миром” в своей работе. Даже самые простые игрули используют сеть для отправки данных, например, для создания таблицы рекордов или банально для загрузки рекламы, отображаемой в приложении. Поэтому, практически каждый разработчик сталкивался с необходимостью проверки наличия подключения к сети, поскольку её отсутствие может вызывать фатальные ошибки приложения, пытающегося загрузить или отправить какие-либо данные. Проверить наличие подключения к сети очень легко, но надо понимать, что подключение к сети может быть активно, но самого Интернета может и не быть – тут, разве что, только отлавливать эксцепшены (exception (англ.) – исключение) и не давать им “рушить” всё приложение.

Я проверяю подключение следующей функцией

public Boolean internetAvailable() {
    ConnectivityManager connectManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    boolean internetAvailable = (connectManager.getNetworkInfo(
	ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || connectManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED);
   return internetAvailable;
}

Эта функция очень удобна в использовании, поскольку она возвращает значение логического типа, что позволяет Вам делать следующие, лёгкие в понимании, конструкции вида:

if(internetAvailable()) {
   // Интернет есть
} else {
   // Интернета нет
}

Использование таких конструкций при написании кода – делает его гораздо более удобным для восприятия человеку. Таким образом, Ваш код легче читается и понимается другими людьми.

Пишите хороший код, удачи!