¿Cómo puedo determinar el tipo de conexión a internet actual disponible para un dispositivo Android? p.ej. haz que devuelva WiFi, 3G, ninguno.¿Cómo determinar la conexión a Internet de Android?
Respuesta
También puede utilizar el TelephonyManager para averiguar cuál es el tipo de red móvil es:
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
int networkType = telephonyManager.getNetworkType();
tipos de red se indican los posibles en http://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkType%28%29
ver este post, me contestó la misma pregunta how to save request and resend in android app
Puede usar esto para determinar si está conectado:
final ConnectivityManager connectManager = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE); // ctx stands for the Context
final NetworkInfo mobile = connectManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
final NetworkInfo wifi = connectManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI );
// Return true if connected, either in 3G or wi-fi
return ((mobile != null && mobile.getState() == NetworkInfo.State.CONNECTED) ||
(wifi != null && wifi.getState() == NetworkInfo.State.CONNECTED) );
}
Este código requiere los permisos ACCESS_NETWORK_STATE
y ACCESS_WIFI_STATE
.
EDIT: public NetworkInfo getNetworkInfo (int networkType)
has been deprecated in API 21. Para los niveles de API superiores al 20 se puede hacer de la siguiente manera:
final Network[] networks = connectManager.getAllNetworks();
boolean connected = false;
for (int ctr = 0; !connected && ctr < networks.length; ++ctr) {
final NetworkInfo network = connectManager.getNetworkInfo(networks[ctr]);
final int netType = network.getType();
connected = (network.getState() == NetworkInfo.State.CONNECTED) &&
(
netType == ConnectivityManager.TYPE_MOBILE ||
netType == ConnectivityManager.TYPE_WIFI /*||
netType == ConnectivityManager.TYPE_WIMAX ||
netType == ConnectivityManager.TYPE_ETHERNET */ );
}
return connected;
que limita este código para Wi-Fi y 3G de acuerdo con la pregunta del OP pero es fácil de extender a los tipos de conexión que acaba de agregar como Ethernet o Wi -Max.
Gracias por su preocupación. Estoy tratando de usar este código así de esta manera, pero está dando fuerza para cerrar \t si (conectado) { \t startActivity (intent7); \t} – user667340
Esto significa que en el código que está ejecutando cuando está conectado hay un error. Pero no en el código que está ejecutando cuando no está conectado. – Shlublu
por favor guía cómo puedo poner en la declaración de caso que si está conectado a Internet debería abrir el otro intento, de lo contrario, solo se mostrará en pan tostado. – user667340
No sé por qué su aplicación falla, quizás esto ayude. Tal vez probar este método: (necesita el contexto de aplicación)
public static boolean isInternetConnectionActive(Context context) {
NetworkInfo networkInfo = ((ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE))
.getActiveNetworkInfo();
if(networkInfo == null || !networkInfo.isConnected()) {
return false;
}
return true;
}
continuación, intenta llamar
if(isInternetConnectionActive(getApplicationContext)) {
/* start Intent */
}
else {
/* show Toast */
}
esperanza esto ayuda
- 1. Cómo determinar la conexión a Internet en Cocoa?
- 2. Android: Establezca la conexión a Internet
- 3. Comprobando la conexión a Internet en android
- 4. Determinar si la conexión a Internet está disponible
- 5. ¿Cómo se comprueba la conexión a Internet en Android?
- 6. Error de conexión a Internet
- 7. syncadapter sin conexión a Internet
- 8. no se puede detectar la conexión a Internet con accesibilidad alcanzabilidad para la conexión a Internet
- 9. ¿Cómo detectar la conexión a Internet que funciona en C#?
- 10. La aplicación solicita conexión a Internet
- 11. conexión a Internet en el emulador de Android
- 12. ¿La manera más fácil de determinar si la conexión a internet del iPhone está disponible?
- 13. detectar si no hay conexión a Internet
- 14. Verificar conexión a internet activa
- 15. (¿Cómo puede un dispositivo virtual de Android utilizar la conexión a Internet de la computadora local?
- 16. Cómo detectar la velocidad de conexión a Internet con Java?
- 17. ¿Cómo comprobar programáticamente la disponibilidad de la conexión a Internet en Android?
- 18. ¿Es posible compartir mi conexión a Internet de la PC a Android a través del usb?
- 19. Simulación de conexión a Internet lenta
- 20. iPhone SDK Detección de conexión a Internet
- 21. La forma más rápida de probar la conexión a Internet
- 22. ¿Detecta que la conexión a Internet está fuera de línea?
- 23. Cómo verificar actualmente la conexión a Internet está disponible o no en android
- 24. Cómo determinar qué adaptador de red está conectado a Internet
- 25. Detectar conexión a Internet utilizando Java
- 26. Imita una conexión a Internet lenta (mac)
- 27. Cómo determinar la interfaz de red de Internet en Java
- 28. Detectando si la conexión a Internet está ocupada
- 29. cómo comprobar la conexión de Internet en wp7?
- 30. ¿Cómo instalar Python desde el origen sin conexión a Internet?
no funciona para Wi-Fi, ¿verdad? – shkschneider
No, es por eso que dije "También puedes ..." en caso de que alguien necesite saber el tipo de red móvil que se está utilizando. Al menos algunas de las otras respuestas solo dicen si la conexión es WiFi o móvil. – Intrications