Conexión a Internet en Android
-
27-09-2019 - |
Pregunta
Tengo trabajo en la aplicación que utilizan Internet.
- Contiene análisis XML de la URL. de
- Mostrando el indicador de progreso Durante el análisis tiempo.
- Detener diálogo cuando el análisis se realiza.
- Definir texto (datos) en ListView.
mi problema es que, cuando el dispositivo está conectado a Internet que mi Apps funciona bien pero cuando El dispositivo no está conectado a Internet "Diálogo de progreso" se está ejecutando para tiempo infinito.
Quiero dejar de diálogo si el dispositivo no está conectado a Internet o wifi. cómo hacer esto?
¿Alguna idea?
Lo siento chicos .... Tengo cambiar de idea que quiero para comprobar la conexión a Internet cuando hago clic en el botón. Lo que he tratado hasta ahora es ..
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.homelayout);
mclip = (ImageButton) findViewById(R.id.clip);
mclip.setClickable(true);
mclip.setFocusable(true);
mclip.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
//if it is connected to internet than start Another Activity.
startActivity(new Intent(ListViewExample.this, ClipOfDay.class));
} else if (netInfo == null) {
AlertDialog alertDialog = new AlertDialog.Builder(ListViewExample.this).create();
alertDialog.setTitle("Connection Problem");
alertDialog.setMessage("You are not connected to Internet");
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return;
}
});
alertDialog.show();
}
}
});
}
Pero esto no es working.if dispositivo no está conectado a Internet que quiero mostrar AlertDialog. de lo contrario, se iniciará la actividad. ¿Alguien puede decirme qué hacer?
Gracias.
Solución
Comprobar la conexión a la red
Un código simple para comprobar la conexión
ConnectivityManager cMgr = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cMgr.getActiveNetworkInfo();
String status = netInfo.getState().toString();
if (status.equals("CONNECTED")) {
//DO you work
} else {
Log.e("error", "No connection available ");
}
Otros consejos
Use estos dos métodos para comprobar la conectividad:
Context.getSystemService(Context.CONNECTIVITY_SERVICE).getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
Context.getSystemService(Context.CONNECTIVITY_SERVICE).getNetworkInfo(ConnectivityManager.TYPE_WIFI)
a continuación, analizar los resultados devueltos a saber si la conexión está disponible. Si a su disposición, entonces sólo hacer las cosas y poner el cuadro de diálogo.
Como alternativa, puede también aparecer el cuadro de diálogo, y antes de realizar cualquier acción de la red, la verificación de la conectividad con estos métodos, y si la conexión no está disponible, ocultar / cancelar el cuadro de diálogo y mostrar un mensaje de error. otra cosa, ir a por la acción de la red. y sí, siempre tienen un bloque try-catch.
- En primer lugar comprobar si está conectado a Internet o wifi, a continuación, ejecute el código
- Uso try, catch, en caso de que alguna excepción se produce debido a un error de conexión, de diálogo de eliminación en bloque catch.
Esto puede ser una manera de hacer esto ..............
Espero que ayude .......