Problem in detecting Internet Connection in Android

前端 未结 2 1960
终归单人心
终归单人心 2020-12-15 02:07

I have created a Android application using Google Maps. Now I want to check whether an internet connection is available or not. I search in Google and finally I got solution

2条回答
  •  鱼传尺愫
    2020-12-15 02:39

    Try using NetworkInfo ni = cm.getActiveNetworkInfo(); instead of NetworkInfo ni = cm.getAllNetworkInfo();. There should only be one active data network at any one time because Android will use the best available and shut down the others to conserve battery.

    Also, I tend to use ni.isConnectedOrConnecting(); instead of ni.isConnected(); because it can catch transition states better.

    I also use ni.getType() == ConnectivityManager.TYPE_WIFI instead of ni.getTypeName().equalsIgnoreCase("WIFI") because it is much more efficient to compare two int values than it is to compare two strings.

    The following code works for me:

    boolean HaveConnectedWifi = false;
    boolean HaveConnectedMobile = false;
    ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo ni = cm.getActiveNetworkInfo();
    if ( ni != null )
    {
        if (ni.getType() == ConnectivityManager.TYPE_WIFI)
            if (ni.isConnectedOrConnecting())
                HaveConnectedWifi = true;
        if (ni.getType() == ConnectivityManager.TYPE_MOBILE)
            if (ni.isConnectedOrConnecting())
                HaveConnectedMobile = true;
    }
    

提交回复
热议问题