Foros del Web » Programando para Internet » Android »

Detectar conexion a internet y enviar a una activity

Estas en el tema de Detectar conexion a internet y enviar a una activity en el foro de Android en Foros del Web. El asunto es, enviar a una activity si tiene conexion a internet, de lo contrario enviarlo a otra activity... Todo funciona muy bien pero he ...
  #1 (permalink)  
Antiguo 16/05/2014, 17:49
 
Fecha de Ingreso: octubre-2012
Mensajes: 45
Antigüedad: 11 años, 5 meses
Puntos: 0
Detectar conexion a internet y enviar a una activity

El asunto es, enviar a una activity si tiene conexion a internet, de lo contrario enviarlo a otra activity... Todo funciona muy bien pero he buscado mucho por Google y encuentro muchos ejemplos de como detectar si el dispositivo esta conectado a un WiFi o a los datos... Pero hasta ahora no encuentro uno que me funcione para saber si hay DATOS, osea si RECIBE.

De este modo detecto si está conectado a Internet:

Código:
public boolean isOnline() {
    ConnectivityManager cm = 
         (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnected()) {
        return true;
    }
    return false;
}
De este modo recibo la informacion :


Código:
		
		if (!isOnline(this)) {
			  internet = false;
			} else {
				internet = true;
			  //Internet available. Do what's required when internet is available.
			}

Y así es como la proceso :

Código:
	        	if (internet == true) {
	          Intent mainIntent = new Intent().setClass(Inicio.this, Main.class);
	          startActivity(mainIntent);
	        	} else {
	  	          Intent mainIntent = new Intent().setClass(Inicio.this, NoInternet.class);
		          startActivity(mainIntent);
	        	}

De este modo hago que el usuario conectado a Internet reciba el Activity principal, y si no, recibe una Activity donde le hace saber un típico "Sin conexión"...

Funciona perfecto, pero solo detecta si hay conexion a internet, mas NO si TIENE INTERNET.

Me explico? Ojala que si...

Gracias por su ayuda.
  #2 (permalink)  
Antiguo 21/05/2014, 00:55
 
Fecha de Ingreso: enero-2011
Ubicación: lima-peru
Mensajes: 80
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Detectar conexion a internet y enviar a una activity

Creo haber entendido,

mmm.. osea, claro android te dice si estas conectado a una RED , pero no te dice si hay trafico mas alla de esa red, o bueno a una IP o dominio especifico.

si es asi, lo mas simple es pensar en un hacer ping o resolver el nombre, y para comprobarlo hacer un simple GET, para saber si puedes llegar a destino,

yo por ejemplo, usando httpclient, te puedes ayudar de los codigos de respuesta del protocola TCP, 200 500 404 etc, un time out o no conexion "con el ip buscado" .

buscando con google: android developer ping , encontre :

//para hacer ping y ver el codigo
Código Java:
Ver original
  1. HttpClient client = new DefaultHttpClient();
  2.         client.getConnectionManager().getSchemeRegistry().register(getMockedScheme());
  3.  
  4.         URI website = new URI("https://server.com:8443/XoW");
  5.         HttpGet request = new HttpGet();
  6.         request.setURI(website);
  7.         HttpResponse response = client.execute(request);
  8.         response.getStatusLine().getStatusCode();

FUENTE:
http://stackoverflow.com/questions/1...tp-get-request


Código Java:
Ver original
  1. executeCmd("ping -c 1 -w 1 google.com", false);
  2.  
  3. public static String executeCmd(String cmd, boolean sudo){
  4.     try {
  5.  
  6.         Process p;
  7.         if(!sudo)
  8.             p= Runtime.getRuntime().exec(cmd);
  9.         else{
  10.             p= Runtime.getRuntime().exec(new String[]{"su", "-c", cmd});
  11.         }
  12.         BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
  13.  
  14.         String s;
  15.         String res = "";
  16.         while ((s = stdInput.readLine()) != null) {
  17.             res += s + "\n";
  18.         }
  19.         p.destroy();
  20.         return res;
  21.     } catch (Exception e) {
  22.         e.printStackTrace();
  23.     }
  24.     return "";
  25.  
  26. }

FUENTE: http://stackoverflow.com/questions/3...m-java-android


suerte.

Etiquetas: activity, conexion, internet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:11.