android的网络是否连接状态检测及具体连接的网络类型
许多时候我们需要开发好多和网络相关的应用,例如网上商城,新闻浏览器,社交类网站,先要检测手机网络的连接情况。Android的服务ConnectivityManager可以检查当前手机网络的状态,是否可用,是那种网络类型。
下面方法具体接受检测不同类型网络的方法。想访问网络状态,记得在AndroidMainfest.xml里边添加权限。添加权限网络状态权限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
/**
* 检查网络连接情况
*
* @return 0: None, 1: Wifi, 2: GPRS, 3: Other
*/
protected int checkNetworkType(Context context) {
ConnectivityManager connManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
// 获取代表联网状态的NetWorkInfo对象
NetworkInfo networkInfo = connManager.getActiveNetworkInfo();
// 获取当前的网络连接是否可用
if (networkInfo != null || networkInfo.isAvailable()) {
//networkInfo.isAvailable(); 返回当前的网络状态是否可用,可用时,具体判断是哪种网络
//wifi
State state = connManager.getNetworkInfo(
ConnectivityManager.TYPE_WIFI).getState();
if (State.CONNECTED == state) {
return 1;
}
// GPRS
state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
.getState();
if (State.CONNECTED == state) {
return 2;
}
}
return 0;
}