Android監聽網絡連接情況

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章