【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 未知

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值