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

Android监听网络连接情况

2015-11-05 16:21 555 查看
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

/**
 *网络连接Receiver,如果网络中途断掉,进行相应提示
 * @author 
 *
 */
public class ConnectionChangeReceiver extends BroadcastReceiver {
    private onNetworkChangedListener mOnNetworkChangedListener;

	public void setOnNetworkChangedListener(
			onNetworkChangedListener onNetworkChangedListener) {
		this.mOnNetworkChangedListener = onNetworkChangedListener;
	}

	@Override  
    public void onReceive(Context context, Intent intent) {
        if(mOnNetworkChangedListener != null){
        	mOnNetworkChangedListener.onNetworkChanged(isNetworkAvailable(context));
        }
    }
	
	public static boolean isNetworkAvailable(Context context) {
        ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);  
        if (connectivity == null) {  
            return false;  
        } else {  
            NetworkInfo[] info = connectivity.getAllNetworkInfo();  
            if (info != null) {  
                for (int i = 0; i < info.length; i++) {  
                    if (info[i].getState() == NetworkInfo.State.CONNECTED) {  
                        return true;  
                    }  
                }  
            }  
        }  
        return false;  
    }  
    
    public static interface onNetworkChangedListener{
    	public void onNetworkChanged(boolean isConnected);
    }
}


先定义一个监听网络的广播***

然后用的时候

mConnectionChangeReceiver = new ConnectionChangeReceiver();
				mConnectionChangeReceiver
						.setOnNetworkChangedListener(new ConnectionChangeReceiver.onNetworkChangedListener() {

							@Override
							public void onNetworkChanged(boolean isConnected) {
								
								if ( !isConnected) {
									//断开网络的情况

								} else {<span style="font-family: Arial, Helvetica, sans-serif;">       //连接网络的情况                                                      </span>
								}
							}
						});
			}

			IntentFilter broadcastFilter = new IntentFilter(
					"android.net.conn.CONNECTIVITY_CHANGE");
			if (mConnectionChangeReceiver != null) {
				registerReceiver(mConnectionChangeReceiver, broadcastFilter);
			}


记得声明mConnectionChangeReceiver
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: