Verificar conexao de aplicativo android com internet

4 respostas
W

Estou desenvolvendo um aplicativo no android e gostaria de saber como verificar se existe conexao com internet
para não receber uma exception.

4 Respostas

M
final NetworkInfo wifiNetworkInfo =
                connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        if (wifiNetworkInfo == null) {
            return false;
        }

        boolean connected = wifiNetworkInfo.getState() == NetworkInfo.State.CONNECTED
                || wifiNetworkInfo.getState() == NetworkInfo.State.CONNECTING;
W
Marky.Vasconcelos:
final NetworkInfo wifiNetworkInfo =
                connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        if (wifiNetworkInfo == null) {
            return false;
        }

        boolean connected = wifiNetworkInfo.getState() == NetworkInfo.State.CONNECTED
                || wifiNetworkInfo.getState() == NetworkInfo.State.CONNECTING;

Valeu amigão, mas minha conexão WIFI só retorna false;

K

Use esse metodo :

public static boolean VerificaConexao(Context contexto){
    	
    	ConnectivityManager cm = (ConnectivityManager) contexto.getSystemService(Context.CONNECTIVITY_SERVICE);//Pego a conectividade do contexto o qual o metodo foi chamado
    	
    	NetworkInfo netInfo = cm.getActiveNetworkInfo();//Crio o objeto netInfo que recebe as informacoes da NEtwork
    	
    	System.out.println("NETWORK INFO: "+netInfo.getSubtypeName());
    	
    	if ( (netInfo != null) && (netInfo.isConnectedOrConnecting()) && (netInfo.isAvailable()) ) //Se o objeto for nulo ou nao tem conectividade retorna false
    		return true;
    	else
    		return false;
    	
    	}

e
Adicione ao seu androidmanifest.xml essa linha:

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

Como pode ver esse codigo apenas verifica se a conexao mas tive um pequeno problema que foi o seguinte.
Em um local que usei o app a conexao existia mas era preciso um login nao da rede mas da internet para navegar e ai acontecia o erro.

Fica facil de arrumar isso mas vai de acordo com seu app... no meu caso em que eu pegava dados da internet e jogava para o banco quando havia conexao eu apenas adicionei uma condicao que era a de verificar se haviam dados...

Espero ter ajudado !

P
public static boolean VerificaConexao(Context contexto){  
      
    ConnectivityManager cm = (ConnectivityManager) contexto.getSystemService(Context.CONNECTIVITY_SERVICE);//Pego a conectividade do contexto o qual o metodo foi chamado  
      
    NetworkInfo netInfo = cm.getActiveNetworkInfo();//Crio o objeto netInfo que recebe as informacoes da NEtwork  
      
    System.out.println("NETWORK INFO: "+netInfo.getSubtypeName());  
      
    if ( (netInfo != null) && (netInfo.isConnectedOrConnecting()) && (netInfo.isAvailable()) ) //Se o objeto for nulo ou nao tem conectividade retorna false  
        return true;  
    else  
        return false;  
      
    }

estou tentando usar esse metodo pára verificar minha conexao mas o problema q encorntei foi q esse metodo só retorna TRUE!!

alguem saberia disser onde estaria o erro???

obrigado!

Criado 13 de julho de 2012
Ultima resposta 29 de jul. de 2012
Respostas 4
Participantes 4