Non voglio che la mia app si arresti in modo anomalo se l'utente non ha la connettività wifi o 3G. Come posso prenderlo in fase di esecuzione nella mia app?Come rilevare se l'utente ha il 3G/Wifi attivo prima di effettuare la connessione URL?
6
A
risposta
7
Prima ottenere un riferimento a ConnectivityManager e quindi a check the Wifi and 3G status del dispositivo. Avrai bisogno del permesso ACCESS_NETWORK_STATE per utilizzare questo servizio.
ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mMobile = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mWifi.isConnected() == false && mMobile.isConnected() == false) {
showDialog(DIALOG_NETWORK_UNAVAILABLE);
}
1
connManager.getNetworkInfo (ConnectivityManager.TYPE_WIFI) è obsoleto.
Di seguito è una soluzione migliorata per l'ultimo Android SDK.
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);
boolean is3gEnabled = false;
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Network[] networks = connManager.getAllNetworks();
for(Network network: networks)
{
NetworkInfo info = connManager.getNetworkInfo(network);
if(info!=null) {
if (info.getType() == ConnectivityManager.TYPE_MOBILE) {
is3gEnabled = true;
break;
}
}
}
}
else
{
NetworkInfo mMobile = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if(mMobile!=null)
is3gEnabled = true;
}
Problemi correlati
- 1. Rilevare se il wifi è attivo - iOS
- 2. Come posso rilevare se Dispatcher.DisableProcessing è attivo?
- 3. Come rilevare se Daydream è attivo?
- 4. rilevare se il contatto ha foto
- 5. Come rilevare se l'elemento ha altezza 'auto'
- 6. Come rilevare se edittext ha caratteri inglesi
- 7. Rilevare se un'app Flask gestisce un URL
- 8. getUserMedia - come rilevare se il dispositivo ha effettivamente una fotocamera
- 9. Come effettuare il check in C# se l'account utente è attivo
- 10. Cassandra/Eclipse - Impossibile effettuare la connessione
- 11. Come sapere se il dispositivo Cocoa Touch può effettuare chiamate?
- 12. BASH - Effettuare la prima lettera maiuscola
- 13. Rilevare se IME (Input Method Editor) è attivo in Silverlight
- 14. Formset Django: effettuare prima la richiesta?
- 15. Socket IO rileva quando il client ha perso la connessione
- 16. Come posso rilevare un'interruzione della connessione WebSocket?
- 17. Come effettuare la connessione a Postgres via Node.js
- 18. Come rilevare la funzionalità copia negli appunti prima di utilizzarla
- 19. Come ottenere la connessione URL usando il proxy in java?
- 20. Vedere se ContentEditable div ha lo stato attivo
- 21. Determinare se mdworker (Spotlight) ha completato la prima scansione
- 22. Come verificare rapidamente se il server URL è disponibile
- 23. Se una sitemap ha * ogni * url
- 24. come rilevare la perdita di connessione in jdbc usando weblogic?
- 25. È possibile rilevare la connessione LTE utilizzando l'SDK di iOS?
- 26. Test se un input ha lo stato attivo
- 27. Esiste un modo più semplice e veloce per rilevare se il dispositivo (Windows Phone 7) ha una connessione Internet
- 28. Come posso rilevare se un'unità ha un cestino in C#?
- 29. Verificare se l'input è attivo
- 30. Determina se la pagina web ha lo stato attivo della finestra in primo piano/è attiva?
Vedere [ come controllare la connessione a Internet in Android? ] (http://stackoverflow.com/questions/2326767/how-to-check-internet-conection-in-android). –