Verificar conexão de internet no Android

Postado em por Wolmir Cezer Garbin em Android | 44 Visualizações
Última atualização em:

Neste post vou mostrar uma forma simples de verificar se o Android possui conexão, se esta conectando ou de qual forma esta conectado.

O primeiro passo é adicionar as permissões necessárias no arquivo AndroidManifest.xml.

Para isso adicione as duas permissões:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

O arquivo deve ficar parecido com o abaixo:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="br.com.garbosoftware.app">

	<uses-permission android:name="android.permission.INTERNET" />
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
	[...]

Logo após, já pode utilizar os métodos necessários para realizar os testes.

Verificando se esta conectado

Agora precisa obter a instância ConnectivityManager do contexto de sua aplicação (activity ou fragment).

Logo após, criamos uma instância de NetworkInfo para obter a informação que precisamos da conexão com a internet no Android.

ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

if ( cm != null ) {
 NetworkInfo ni = cm.getActiveNetworkInfo();

 return ni != null && ni.isConnected();
}

Note que o objeto cm pode ser nulo, por este motivo adicionamos uma verificação para evitar exceções.

Você ainda pode criar um método utilitário que verifica se está conectado. Isso facilita o reuso do código em sua aplicação.

public static boolean isConected(Context context) {
 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

 if ( cm != null ) {
  NetworkInfo ni = cm.getActiveNetworkInfo();

  return ni != null && ni.isConnected();
 }

 return false;
}

Ainda é possível verificar se o aparelho possui internet usando Wifi ou Dados móveis, conforme o código a seguir:

public static boolean isConected(Context cont){
 ConnectivityManager conmag = (ConnectivityManager)cont.getSystemService(Context.CONNECTIVITY_SERVICE);

 if ( conmag != null ) {
  conmag.getActiveNetworkInfo();

  //Verifica internet pela WIFI
  if (conmag.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()) {
   return true;
  }

  //Verifica se tem internet móvel
  if (conmag.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected()) {
   return true;
  }
 }

 return false;
}

Ainda existem outras informações que pode obter da sua conexão, mas não serão tratadas neste post.

Caso tenha alguma dúvida deixe nos comentários.

Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

Posts relacionados


Code Conference

Esta é uma conferência de código realizada na cidade de Pato Branco para dissiminar tendências e informações sobre programação e novas tecnológias

Veja mais sobre o Code Conference