2010-09-09 14 views

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