android网络连接

1.判断网络状态:

开发android app的时候 会涉及到进行网络访问,而我们在进行网络访问同时首先要对网络状态进行检查,以提供给用户必要的提醒。

说明:我们来总结一下,安卓手机管理服务:
      1.connectivityManager 管理网络相关连接。connectivity(连通性)。

     2.TelephonyManager    管理手机、运营商等相关信息

     3.wifiManager                 管理手机WIFI相关信息

2.下面是网络判断,在对网络判断同时我们要运用到(connectivityManager,NetWorkInfo)这两个类。在NetWorkInfo类中包含了对WIFI和mobile两种网络模式连接的详细描述,通过getState()来获取网络状态。

  2.1、要进行管理首先得在AndroidManifest.xml进行权限设置。

       该地方我们会设置 网络访问权限(uses-permission android:name = "android.permission.ACCESS_NETWORK_STATE")

  2.2 简单对几种状态进行判断的源码:

    一、判断是否有网络连接

  

	/**
	 * @name判断是否有网络连接
	 */
	public boolean isNetWorkConnected() {
		ConnectivityManager mConnectivityManager1 = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE); // 获取服务

		NetworkInfo mNetworkInfo1 = mConnectivityManager1
				.getActiveNetworkInfo(); // 得到NetworkInfo(目前网络状态)

		if (mNetworkInfo1 != null) {
			return mNetworkInfo1.isAvailable();
		}
		return false;

	}

   二、判断WIFI网络是否可用。

	/**
	 * @name判断WIFI网络是否可用
	 */
	public boolean isWifiConnected() {

		ConnectivityManager mConnectivityManager1 = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE); // 获取服务

		NetworkInfo mNetworkInfo1 = mConnectivityManager1
				.getNetworkInfo(ConnectivityManager.TYPE_WIFI); // 得到NetworkInfo(目前网络状态)

		if (mNetworkInfo1 != null) {
			return mNetworkInfo1.isAvailable();
		}
		return false;
	}

   三、判断当前Mobile网络是否可用

	/**
	 * @name判断当前Mobile网络是否可用
	 */
	public boolean isMobileConnected() {

		ConnectivityManager mConnectivityManager1 = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE); // 获取服务

		NetworkInfo mNetworkInfo1 = mConnectivityManager1
				.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); // 得到NetworkInfo(目前网络状态)
		if (mNetworkInfo1 != null) {
			return mNetworkInfo1.isAvailable();
		}
		return false;
	}

   四、判断当前网络连接类型

	/**
	 * @name判断当前网络连接类型
	 */
	public int getStateType() {

		ConnectivityManager mConnectivityManager1 = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE); // 获取服务

		NetworkInfo mNetworkInfo1 = mConnectivityManager1
				.getActiveNetworkInfo(); // 得到NetworkInfo(目前网络状态)
		if (mNetworkInfo1 != null && mNetworkInfo1.isAvailable()) {
			return mNetworkInfo1.getType();
		}
		return -1;
	}

3.0 最后上一个列子
 
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo.State;

/**
 * @name 对网络进行判断
 * @author xuyifei
 * 
 */
public class NetWorkUtils {
	private Context mContext;
	public State wifiState = null;
	public State mobileState = null;

	// 构造方法
	public NetWorkUtils(Context context) {
		mContext = context;
	}

	// 枚举
	public enum NetWorkState {
		WIFI, MOBILE, NONE;

	}

	/**
	 * @name 获取当前的网络状态
	 * @return
	 */
	public NetWorkState getConnectState() {
		ConnectivityManager manager = (ConnectivityManager) mContext
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		manager.getActiveNetworkInfo();
		wifiState = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
				.getState();
		mobileState = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
				.getState();
		if (wifiState != null && mobileState != null
				&& State.CONNECTED != wifiState
				&& State.CONNECTED == mobileState) {
			return NetWorkState.MOBILE;
		} else if (wifiState != null && mobileState != null
				&& State.CONNECTED != wifiState
				&& State.CONNECTED != mobileState) {
			return NetWorkState.NONE;
		} else if (wifiState != null && State.CONNECTED == wifiState) {
			return NetWorkState.WIFI;
		}
		return NetWorkState.NONE;
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值