Android: Comprobar la conexión con el servidor
Así que tengo un método que comprueba si el dispositivo está conectado a Internet basado en este
Funciona bien, pero en un par de casos me parece que aunque el teléfono muestra estar conectado a Internet, todavía no tiene acceso a mi servidor. Lo que realmente estoy tratando de hacer es comprobar la conexión a mi URL específica.
- El servicio exportado no requiere permiso: ¿qué significa?
- El servicio Android se bloquea después de que la aplicación se borre de la lista de aplicaciones recientes
- ¿Cómo mantener un servicio ejecutándose en segundo plano incluso después de que el usuario abandone la aplicación?
- Notificación de Android Acción que no llama a la intención pendiente de servicio
- No se puede iniciar el servicio Intención: no se encuentra
¿Cómo podría implementar eso?
- Context.getApplicationContext () devuelve null en un Service
- ¿Por qué utilizar servicios vinculados (no iniciados) dentro del proceso de solicitud?
- Servicio de Android Creación de una nueva instancia de clase Singleton
- Android: Mejor manera de obtener datos del servidor (Widget + aplicación)
- Implementación de NotificationListenerService
- Relación de actividad y servicio de Android: después de Pausa, después de Parar
- ¿Cómo puedo saber si mi servicio ha iniciado
- ¿Por qué otro servicio encima de IMarketBillingService?
Usted podría hacer algo como:
public boolean isConnectedToServer(String url, int timeout) { try{ URL myUrl = new URL(url); URLConnection connection = myUrl.openConnection(); connection.setConnectTimeout(timeout); connection.connect(); return true; } catch (Exception e) { // Handle your exceptions return false; } }
Esto intentará conectarse a la URL de su servidor y si falla, obviamente no tiene una conexión. D
Puedes probar
InetAddress.getByName(host).isReachable(timeOut)
Runtime runtime = Runtime.getRuntime(); Process proc; try { proc = runtime.exec("ping -c 1"+ (String) getText(R.string.Server)); proc.waitFor(); int exit = proc.exitValue(); if (exit == 0) { // normal exit } else { // abnormal exit, so decide that the server is not // reachable } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // other servers, for example catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }
- Rendimiento de almacenamiento de datos de Android
- Cómo crear GUI en Android en lugar de utilizar XML?