Checando se há internet (me ajudem, já to desesperado)

1 resposta
java
K

Queria uma maneira fácil e simples de verificar se o dispositivo tem conexao com a internet, se não tiver enviar pra uma activit com uma mensagem que precisa de conexao para usar o aplicativo. caso tenha internet, abrir um webview. que ficará na ActivityMain!

Obs: A verificação é na tela splashScreen. Veja minha programação

TELA SPLASH

public class Splash extends Activity {

    private static int tempo_splash = 1000;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // Para o layout preencher toda tela do cel (remover a barra de tit.)

        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                Intent intent = new Intent();
                intent.setClass(Splash.this, MyConnectivityChecker.class);
                startActivity(intent);
                finish();//this should be after starting intent
            }
        }, 2000);

    }
}

Agora que tenho a tela Splash feita, setando a classeSplash.this e a que fará a verificação de internet MyConnectivityChecker.this , aqui está a outra classe:

public class MyConnectivityChecker extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    public void verificaInternet() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

        if (cm.getActiveNetworkInfo() != null
                && cm.getActiveNetworkInfo().isAvailable()
                && cm.getActiveNetworkInfo().isConnected()) {

            setContentView(R.layout.activity_main);

        } else {

            setContentView(R.layout.internet);

        }
    }


}

OBS: Meu manifesto já está com as permissões.

1 Resposta

P

Cara eu uso assim:

import android.app.AlertDialog;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.net.ConnectivityManager;

import android.net.NetworkInfo;

import android.net.wifi.WifiManager;

/**

  • Created by pedrosa on 25/03/16.
    
    */
    
    public class VerificaConexao {
    
    private Context context;
    
    public VerificaConexao(Context context){
    
    this.context = context;
    
    }
    
    public void dialogIfOffline() {
    
    new AlertDialog.Builder(context)
    
    .setTitle(Problema de conexão)
    
    .setMessage(Para acessar o app é preciso estar conectado, verifique sua conexão.)
    
    .setNegativeButton(Ajustar, new DialogInterface.OnClickListener() {
    
    <a class="mention" href="/u/override">@Override</a>
    
    public void onClick(DialogInterface dialog, int which) {
    
    context.startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));
    
    }
    
    }).show();
    
    }
    
    public static boolean isConnected(Context context) {
    
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    
    NetworkInfo info = connectivityManager.getActiveNetworkInfo();
    
    return info != null && info.isConnectedOrConnecting();
    
    }
    
    }
    

E quando preciso de algo que precisa de internet:

if (!VerificaConexao.isConnected(this)) {

new VerificaConexao(this).dialogIfOffline();

}else {

}

Criado 7 de junho de 2016
Ultima resposta 23 de jun. de 2016
Respostas 1
Participantes 2