Программирование

Проверяем наличие подключения к сети в 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 {
   // Интернета нет
}

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