Alguns dos usos mais comuns para alarmes e serviços de fundo é agendar atualizações regulares de dados e recursos da Internet ou executar downloads.
Você pode usar o ConnectivityManager para verificar se você está realmente conectado à Internet, e em caso afirmativo, qual o tipo de conexão.
Primeiramente lembre-se de inserir a seguinte permissão em seu Manifest.xml:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Abaixo vamos ver 3 exemplos, verificar se existe conexão, o tipo e o status.
1 – Verificando se há conexão:
public boolean isConectado() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); if (netInfo != null && netInfo.isConnectedOrConnecting()) { return true; } return false; }
2 – Verificando o tipo de conexão:
public void verificaTipo() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); if (netInfo != null) { switch (netInfo.getType()) { case ConnectivityManager.TYPE_WIFI: tipo.setText("TYPE WIFI"); break; case ConnectivityManager.TYPE_MOBILE: tipo.setText("TYPE MOBILE"); break; } } else { tipo.setText(" - "); } }
3 – Verificando status da conexão:
public void verificaStatus() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); if (netInfo != null) { switch (netInfo.getState()) { case CONNECTED: status.setText("CONNECTED"); break; case CONNECTING: status.setText("CONNECTING"); break; case DISCONNECTED: status.setText("DISCONNECTED"); break; case DISCONNECTING: status.setText("DISCONNECTING"); break; case SUSPENDED: status.setText("SUSPENDED"); break; case UNKNOWN: status.setText("UNKNOWN"); break; } } else { status.setText("STATUS INDISPONIVEL"); } }
Fonte: http://goo.gl/Ox6Upa
Bom dia!
Este método não mostra se existe conexão com a internet, apenas se está habilitado ou não.
Nos meus testes não funcionou como eu achei que funcionaria :'(
Você conseguiu um método que verifica se tem conexão com a internet?