FelipeTorres 2016-02-19 17:59:09 UTC #2
Pra verificar se o aparelho está conectado, precisa colocar essa permissão no AndroidManifest.xml
E esse código deve ser suficiente:
public boolean temInternet() {
fabioqb 2016-02-19 18:46:14 UTC #3
Complementando a resposta do @FelipeTorres, maiores detalhes aqui http://developer.android.com/intl/pt-br/training/monitoring-device-state/connectivity-monitoring.html, onde também encontra forma de verificar alterações na conectividade.
Kwmif_Vivinho 2016-02-19 22:24:18 UTC #4
Kwmif_Vivinho 2016-02-19 23:39:00 UTC #5
@FelipeTorres, infelizmente o código não funcionou. O aparelho estando sem internet e sem conexão à rede, não dá nenhum aviso e falta de conectividade e abre normalmente.
O que pode ter acontecido? Versão meu Android é 2.3.6.
Kwmif_Vivinho 2016-02-19 23:42:02 UTC #6
@fabioqb, também acessei o link e dei uma lida… usei o código ali apresentado mas não funcionou. Mesmo sem internet o app abre normalmente com as orientações que estão no link.
Vou continuar pesquisando esse método, pois posso estar montando errado ou esquecendo de algo.
blayd2015 2016-02-20 10:41:04 UTC #7
alem da permissão que o @FelipeTorres indicou também habilite a:
e uma pesquisada no GUJ não mata ninguém tbm…heheh…
Segue: [Resolvido]Verificar conexão android com internet!
Kwmif_Vivinho 2016-02-20 13:24:06 UTC #8
Sim, já coloquei essa permissão também.
Kwmif_Vivinho 2016-02-21 20:30:25 UTC #9
@FelipeTorres, achei que não teria funcionado pelo fato de não inserir o código para acessar a internet (WebView), mas ao colocar o código também não funcionou. Onde devo estar errando?
Abaixo segue meu activity. Repare onde coloquei o código que me indicou… se eu colocar dentro do void, dá erro no código e não compila… da forma como está compila normalmente, mas se estiver sem rede o código não roda.
package br.com.projetolouvai.projetolouvai;
public class louvai extends AppCompatActivity {
// net off
setContentView(R.layout.activity_louvai);
String url ="http://www.google.com.br/";
WebSettings ws = view.getSettings();
view.loadUrl(view.getUrl());
fabioqb 2016-02-22 17:07:50 UTC #10
Meu caro, este método "temInternet" retornará true ou false dependendo da conectividade.
Você não o está usando em lugar algum ainda.
Que tal colocar algo como:
if (temInternet()) {
// TODO Montar a WebView
// TODO Mostrar mensagem / não carregar a webview
Kwmif_Vivinho 2016-02-22 20:53:26 UTC #11
@fabioqb, obrigado pela resposta.
Vou testar aqui e ver se consigo montar o código.
Eu havia iniciado em Java um tempo atrás, mas acabei deixando de lado para ver C++ e PHP, e acabei ficando mais com PHP… Como o mundo mobile está em alto, comecei a ver sobre criação de app e afins. Estou pretendendo alguns WebApp…
Mas confesso que ainda estou um bem imaturo para com Java/Android. Sou muito grato pela paciência e ajuda dos colegas aqui.
Assim, teria como indicar material, dica, para eu estudar? Tipo as principais funções ou atributos, algo assim para eu começar. Tenho conhecimento de como funciona funções como a que mencionou no PHP, mas não sei ao certo como montá-las no Android.
Se puder indicar algumas apostila online ao algum livro e dicas das principais códigos que teria que estudar para iniciar.
fabioqb 2016-02-22 21:16:27 UTC #12
O melhor lugar para começar com Android é no próprio site da plataforma.
http://developer.android.com/intl/pt-br/training/index.html
Kwmif_Vivinho 2016-02-22 22:12:26 UTC #13
@fabioqb, obrigado pela dica.
Aqui, consegui montar o código com a condicional. Quando está com internet a WebView abre e quando eu desconecto o app não carrega o WebView, mas também não aparece a informação de falta de conexão.
Sei que estou abusando, mas teria como me ajudar só mais nessa etapa? Que creio que é a última.
No else eu coloquei System.out.println("Sem conexão")… como eu faça para que apareça essa informação na tela? Pois fica tudo branco e não aparece nenhuma informação se estiver sem internet.
Somente informar System.out.println no activity já seria suficiente ou eu tenho que mexer em algum xml?
Ah, o WebView está usando 100% da tela, mas coloquei dentro do if. Neste caso era para o print exibir a mensagem no lugar onde entraria o WebView, correto?
Kwmif_Vivinho 2016-02-23 01:59:19 UTC #14
Obrigado a todos pelas dicas, ajuda e paciência. Consegui resolver da seguinte forma:
Percebi que o ConnectivityManager somente verificava se havia conexão de rede, então pesquisei e consegui o seguinte código:
public Boolean getUrlDisponivel(){
String urlName = null;
if (urlName == null) {
urlName = "http://www.google.com/";
java.net.HttpURLConnection urlConnection = null;
java.net.URL url = new java.net.URL(urlName.toString());
urlConnection = (java.net.HttpURLConnection) url.openConnection();
if (urlConnection.getResponseCode() == java.net.HttpURLConnection.HTTP_OK) {
Assim, verifica se consegue ler a url e, se estiver sem rede ou se tiver rede mas mas internet retorna false e true ao ter sucesso na leitura da url.
Montei uma string contendo código html.
html += "Sem conexao com a internet";
Depois, em vez de colocar todo o código da Webview dentro do if, eu coloquei somente o loadUrl. E, para o else, eu criei o loadData com o html acima.