首页 > 学院 > 开发设计 > 正文

安卓各种网络判断与处理

2019-11-09 18:53:02
字体:
来源:转载
供稿:网友

                                                                 安卓各种网络判断与处理

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

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、为应用程序提供可以获取可用网络的高精度和粗糙的状态


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表