您的位置:首页 > 理论基础 > 计算机网络

Android开发之获取手机网络状态及网络是否连接

2015-11-29 15:00 661 查看
在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中获取网络状态就搞定啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: