Android开发之获取手机网络状态及网络是否连接
在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中获取网络状态就搞定啦!
更多相关文章
- Android(安卓)NDK开发详细介绍
- Android应用程序开发(第三版)-课后习题解答
- Android应用程序——四大组件之Activity
- Android(安卓)代码混淆(二)
- 四十五、android camera
- 百度android定位SDK问题
- 网络请求框架AsyncHttpclient的简单使用
- Android(安卓)UI控件之RadioGroup、RadioButton
- 关于Android如何禁止屏幕旋转刷新界面