在Android中,判断网络状态和网络是否连接时一件很简单的事情,SDK为我们提供了一个ConnectivityManager类来帮助我们获取网络的状态。

在网络状态改变的情况下,Android自身会发出一个Action为:android.net.conn.CONNECTIVITY_CHANGE 的broadcastReceiver。

我们只需要创建一个Receiver来接收系统发出的广播即可获取网络状态。OK,下面看代码:

package co.huiqu.webapp.common.utils;


import co.huiqu.webapp.HuiQuApplication;
import co.huiqu.webapp.constant.App;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;


/**
*
* @Description:网络监听器
* @author song
* @date 2015年11月9日
*/
public class NetManagerService extends BroadcastReceiver {
/**
* 网络状态
*/
public static App.NetworkStatus mNetworkStatus = App.NetworkStatus.CONNECTED;

@Override
public void onReceive(Context context, Intent intent) {

ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);


NetworkInfo mMobileNetInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);


NetworkInfo mWifiNetInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);


if(mMobileNetInfo.isConnected() && mWifiNetInfo.isConnected()) {


mNetworkStatus = App.NetworkStatus.CONNECTED;
}else if(mMobileNetInfo.isConnected()) {


mNetworkStatus = App.NetworkStatus.MOBILE;


}else if(mWifiNetInfo.isConnected()) {


mNetworkStatus = App.NetworkStatus.WIFI;


}else if(!(mMobileNetInfo.isConnected() && mWifiNetInfo.isConnected())) {


mNetworkStatus = App.NetworkStatus.DISCONNECTED;


}else{


mNetworkStatus = App.NetworkStatus.DISCONNECTED;


}
}

//判断网络是否连接
public static boolean isNetworkAvailable() {


Context context = HuiQuApplication.getInstance();


ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);


NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();


if(mNetworkInfo != null) {


return mNetworkInfo.isAvailable();


}


return false;
}
}

上面的代码相信大家很容易理解,ok,到此为止,在Android中获取网络状态就搞定啦!

更多相关文章

  1. Android(安卓)NDK开发详细介绍
  2. Android应用程序开发(第三版)-课后习题解答
  3. Android应用程序——四大组件之Activity
  4. Android(安卓)代码混淆(二)
  5. 四十五、android camera
  6. 百度android定位SDK问题
  7. 网络请求框架AsyncHttpclient的简单使用
  8. Android(安卓)UI控件之RadioGroup、RadioButton
  9. 关于Android如何禁止屏幕旋转刷新界面

随机推荐

  1. 解析Android中的main线程与子线程
  2. ADB 工具
  3. Android的RelativeLayout的layout_height
  4. Android应用程序内存分析-Memory Analysi
  5. -如何将Eclipse中的项目迁移到Android(安
  6. 在eclipse中查看android SDK的源代码
  7. 高焕堂
  8. Android(安卓)Camera
  9. EditText的使用
  10. Android(安卓)输入法键盘和activity页面