1.判断网络状态:
1.connectivityManager 管理网络相关连接。connectivity(连通性)。
2.TelephonyManager 管理手机、运营商等相关信息
3.wifiManager 管理手机WIFI相关信息
2.下面是网络判断,在对网络判断同时我们要运用到(connectivityManager,NetWorkInfo)这两个类。在NetWorkInfo类中包含了对WIFI和mobile两种网络模式连接的详细描述,通过getState()来获取网络状态。
2.1、要进行管理首先得在AndroidManifest.xml进行权限设置。
三、判断当前Mobile网络是否可用
四、判断当前网络连接类型
3.0 最后上一个列子
开发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;
}
}