Foros del Web » Programando para Internet » Android »

detectar disponibilidad de conexión

Estas en el tema de detectar disponibilidad de conexión en el foro de Android en Foros del Web. tengo el siguiente código que encontré en un tutorial en la Internet, lo que sucede es que no puedo hacer que funcione, se trata de ...
  #1 (permalink)  
Antiguo 02/04/2013, 16:49
 
Fecha de Ingreso: mayo-2006
Mensajes: 86
Antigüedad: 18 años, 6 meses
Puntos: 0
detectar disponibilidad de conexión

tengo el siguiente código que encontré en un tutorial en la Internet, lo que sucede es que no puedo hacer que funcione, se trata de un detecto de coneccion a internet atraves de sus diferentes formas, ya sea wifi, datos, bluetoot, y otros.
necesito de sus sabios consejos y su analítica perspectiva.
para resolverlo.
Código:
package sg.peru.dondeestoy;

import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;

public class MainActivity extends Activity {
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
     }

private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
        String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
                    boolean isFailover = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);
        
        NetworkInfo currentNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
        NetworkInfo otherNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
}

	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		
	}}

private void registerReceivers() {    
   registerReceiver(mConnReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));

}

	   
}
  #2 (permalink)  
Antiguo 02/04/2013, 17:26
Avatar de zero_master  
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 5 meses
Puntos: 74
Respuesta: detectar disponibilidad de coneccion

yo utilizo el siguiente codigo solo para detectar si tengo internet

Código Javascript:
Ver original
  1. public boolean isOnline() {
  2.             ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
  3.  
  4.             NetworkInfo netInfo = cm.getActiveNetworkInfo();
  5.  
  6.             if (netInfo != null && netInfo.isConnectedOrConnecting()) {
  7.             return true;
  8.             }
  9.  
  10.             return false;
  11.             }
  #3 (permalink)  
Antiguo 03/04/2013, 17:20
 
Fecha de Ingreso: mayo-2006
Mensajes: 86
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: detectar disponibilidad de coneccion

Gracias por responder, ahora que ya se estoy usando tu public bolean pero como lo empleo?

Código:
		if ( isOnline == true) {
			String text;
			int server_port = 12345;
			byte[] message = new byte[1500];
			DatagramPacket p = new DatagramPacket(message, message.length);
			DatagramSocket s = new DatagramSocket(server_port);
			s.receive(p);
			text = new String(message, 0, p.getLength());
			Log.d("Udp tutorial","message:" + text);
			s.close();
			
			
		}
  #4 (permalink)  
Antiguo 03/04/2013, 22:33
Avatar de zero_master  
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 5 meses
Puntos: 74
Respuesta: detectar disponibilidad de coneccion

Como la funcion regresa un boleano solo lo pongo con
if(isOnline){
//Lo que tengas que hacer si tienes internet
}else{
//Lo que tengas que hacer si no tienes internet
}
  #5 (permalink)  
Antiguo 04/04/2013, 05:58
 
Fecha de Ingreso: mayo-2006
Mensajes: 86
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: detectar disponibilidad de coneccion

excelente amigo gracias, pero me sale error al llamar al boleano dentro de la activity talves hago algo mal

Código:
package sg.peru.donest;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.Menu;

public class LoginActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.login);
		if (isOnline){
			String text;
			int server_port = 12345;
			byte[] message = new byte[1500];
			DatagramPacket p = new DatagramPacket(message, message.length);
			DatagramSocket s = new DatagramSocket(server_port);
			s.receive(p);
			text = new String(message, 0, p.getLength());
			Log.d("Udp tutorial","message:" + text);
			s.close();
			
		}
	}
	public boolean isOnline() {
		Context context = getApplicationContext();
		ConnectivityManager connectMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
		if (connectMgr != null) {
			NetworkInfo[] netInfo = connectMgr.getAllNetworkInfo();
			if (netInfo != null) {
				for (NetworkInfo net : netInfo) {
					if (net.getState() == NetworkInfo.State.CONNECTED) {
						return true;
					}
				}
			}
		} 
		
		else {
			Log.d("NETWORK", "No network available");
		}
		return false;
	}

Última edición por rastafinis; 04/04/2013 a las 06:06
  #6 (permalink)  
Antiguo 04/04/2013, 10:54
Avatar de zero_master  
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 5 meses
Puntos: 74
Respuesta: detectar disponibilidad de conexión

O_o le agregaste otras cosas que no tengo yo en mi funcion jejeje la verdad no se que este mal tendria q generar en mi eclipse el mismo codigo para checar... por cierto se me pasaba en tu manifiesto debes declarar los siguiente
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_ST ATE" />
  #7 (permalink)  
Antiguo 04/04/2013, 12:16
 
Fecha de Ingreso: mayo-2006
Mensajes: 86
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: detectar disponibilidad de conexión

me he fijado que hay dos androidmanifest.xml

uno dentro de res y otro dentro de bin->res

modifique en el que menciono primero supongo que eta bien.
y lo de la función eso nada mas me esta dando dolor de cabeza.

ahora te explico lo que quiero hacer.

quiero hacer un app en la que se pueda hacer loguin,
así que agregue dos cajas de texto y un botón.

como puedes ver en el código, deseo que después de comprobar la coneccion, luego hay una condición si hay coneccion, manda por protocolo udp los datos que se ingresan en los cuadros de texto a un servidor,
este servidor tiene coneccion a la base de datos, hace una consulta y comprueba los mismos, luego manda un resultado de aprovacion o desaprovacion,
seguido salta a otra activity en la que muestra las coordenadas gps actual del movil y las envia al servidor por el mismo sistema udp.

si no hay conecion, simplemente guarda los datos ingresados en los cuadros de texto y las coordenadas actuales del gps, en memoria, y cuanodo aya coneccion los envia.
lo que significa que cada cierto periodo el programa hace el trabajo de comprobar a coneccion y actuar según la condición.

espero que me puedas ayudar.
y gracias por el tiempo que inviertes aquí conmigo.
  #8 (permalink)  
Antiguo 04/04/2013, 18:36
Avatar de zero_master  
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 5 meses
Puntos: 74
Respuesta: detectar disponibilidad de conexión

Bueno, te marca error pero crees q es la funcion de checar si tienes internet??
Yo que tu voy comprobando linea por linea con el LogCat para ver en que parte es que te marca error suerte.

Etiquetas: activity, app, coneccion, disponibilidad, layout, todo
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 21:01.