`
dyingbleed
  • 浏览: 116575 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

【Android】网络状态

阅读更多

 

package lizhen.network;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo.State;

public class NetworkState {
	
	private Context context;
	private ConnectivityManager connectivityManager; //網絡連接管理
	private State mobile; //移動網絡狀態
	private State wifi; //WIFI網絡狀態
	
	public NetworkState(Context context) {
		this.context = context;
		init();
	}
	
	/**
	 * 初始化
	 * */
	private void init() {
		connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
	}
	
	/**
	 * 當前網絡是否已連接
	 * @return true 網絡已連接<br />false 其它
	 * */
	public boolean isConnected() {
		boolean result = false;
		mobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
		wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
		result = (mobile == State.CONNECTED || wifi == State.CONNECTED);
		return result;
	}
	
	/**
	 * 當前網絡是否正在連接
	 * @return true 網絡正在連接<br />false 其它
	 * */
	public boolean isConnecting() {
		boolean result = false;
		mobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
		wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
		result = (mobile == State.CONNECTING || wifi == State.CONNECTING);
		return result;
	}

}

 

 

通过调用Context的方法getSystemService(Context.CONNECTIVITY_SERVICE)可以返回ConnectivityManager实例,使用ConnectivityManager,我们可以获取当前网络的状态。

以上代码作为示例,检查当前网络(包括移动网络和WIFI网络)是否已连接或是否正在连接。

 

注:网络状态有如下6种(定义在NetworkInfo.State中)

 

  1. CONNECTED 已连接
  2. CONNECTIONG 正在连接
  3. DISCONNETED 已断开
  4. DISCONNETING 正在断开
  5. SUSPENDED 已挂起
  6. UNKNOW 未知

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics