安卓各种网络判断与处理

    xiaoxiao2021-03-26  62

                                                                     安卓各种网络判断与处理

    在安卓开发中,许多地方需要根据网络状态进行各种功能逻辑的实现,因此我在这里总结一下安卓各种网络状态的获取、判断以及根据有无网络进行相应的逻辑处理:

    1.判断是否有网络连接:

    public boolean isNetworkConnected(Context context) {        if (context != null) {            ConnectivityManager mConnectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();            if (mNetworkInfo != null) {                return mNetworkInfo.isAvailable();            }        }        return false;  

     }

    2.判断WiFi网络是否可用

    public boolean isWifiConnected(Context context) {        if (context != null) {            ConnectivityManager mConnectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo mWiFiNetworkInfo = mConnectivityManager                    .getNetworkInfo(ConnectivityManager.TYPE_WIFI);            if (mWiFiNetworkInfo != null) {                return mWiFiNetworkInfo.isAvailable();            }        }        return false;    }

    3.判断mobile网络是否可用

    public boolean isMobileConnected(Context context) {        if (context != null) {            ConnectivityManager mConnectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo mMobileNetworkInfo = mConnectivityManager                    .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);            if (mMobileNetworkInfo != null) {                return mMobileNetworkInfo.isAvailable();            }        }        return false;    }

    4.获取当前网络连接的类型信息

    public static int getConnectedType(Context context) {        if (context != null) {            ConnectivityManager mConnectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();            if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {                return mNetworkInfo.getType();            }        }        return -1;    }

    在android应用开发时,涉及到要进行网络访问,经常需要进行网络状态的检查,以提供给用户必要的提醒。一般可以通过ConnectivityManager来完成该工作。

    ConnectivityManager有四个主要任务:

    1、监听手机网络状态(包括GPRS,WIFI, UMTS等)

    2、手机状态发生改变时,发送广播

    3、当一个网络连接失败时进行故障切换

    4、为应用程序提供可以获取可用网络的高精度和粗糙的状态

    转载请注明原文地址: https://ju.6miu.com/read-663888.html

    最新回复(0)