How can i check whether an android device is connected to the web?

后端 未结 4 1425
刺人心
刺人心 2020-12-03 06:54

How would i know whether my device is connected the web or not? How can i detect connectivity? Any sample code?

相关标签:
4条回答
  • 2020-12-03 07:42

    http://developer.android.com/reference/android/net/ConnectivityManager.html - CONNECTIVITY_ACTION

    0 讨论(0)
  • 2020-12-03 07:51

    Add this permission in your AppManifest.xml file:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    

    The method to check if network is available or not:

    boolean isNetworkAvailable() {
      ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
    
      NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
      boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
      return isConnected;
    }
    

    Source

    0 讨论(0)
  • 2020-12-03 07:52

    First, you need permission to know whether the device is connected to the web or not. This needs to be in your manifest, in the <manifest> element:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    

    Next, you need to get a reference to the ConnectivityManager:

    ConnectivityManager cm = (ConnectivityManager) Context.getSystemService(Context.CONNECTIVITY_SERVICE);
    

    From there you need to obtain a NetworkInfo object. For most, this will mean using ConnectivityManager. getActiveNetworkInfo():

    NetworkInfo ni = cm.getActiveNetworkInfo();
    if (ni == null) {
        // There are no active networks.
        return false;
    }
    

    From there, you just need to use one of NetworkInfo's methods to determine if the device is connected to the internet:

    boolean isConnected = ni.isConnected();
    
    0 讨论(0)
  • 2020-12-03 07:54

    First, you need permission to know whether the device is connected to the web or not. This needs to be in your manifest, in the element:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    then

    ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    
    if (connec != null && (
        (connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) || 
        (connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED))) { 
    
            //You are connected, do something online.
    
    } else if (connec != null && (
        (connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.DISCONNECTED) ||
        (connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.DISCONNECTED ))) {            
    
            //Not connected.    
            Toast.makeText(getApplicationContext(), "You must be connected to the internet", Toast.LENGTH_LONG).show();
    
    } 
    
    0 讨论(0)
提交回复
热议问题