Android wiki:04.ConnectivityManager检查是否有可用网络
2015-07-01 19:21
597 查看
2015/4/12
ConnectivityManager cm = (ConnectivityManager) getSystemService(Activity.CONNECTIVITY_SERVICE);
boolean wifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
boolean sim = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
if (wifi || sim) {// 有开启wifi或者互联网
}else{
}
//-----------------------------------------------------------------------
public class NetUtil {
/**
* 检查用户网络连接情况
* @param context
* @return
*/
public static boolean checkNetConnetion(Context context) {
boolean wifi = isWIFIConnetion(context);
boolean mobile = isMOBILEConnetion(context);
if (mobile) {// 如果是连接移动APN,就获取代理ip的代理端口
readAPN(context);
}
if (mobile || wifi) {
return true;
} else {
return false;
}
}
/**
* 读取APN的代理ip和端口
*
* @param context
*/
private static void readAPN(Context context) {
Uri PREFERRED_APN_URI = Uri.parse("content://telephony/carriers/preferapn");// 4.0模拟器屏蔽掉该权限
// 操作联系人类似
ContentResolver resolver = context.getContentResolver();
// 判断是哪个APN被选中了
Cursor cursor = resolver.query(PREFERRED_APN_URI, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
String PROXY = cursor.getString(cursor.getColumnIndex("proxy"));
int PORT = cursor.getInt(cursor.getColumnIndex("port"));
}
}
/**
* 检查是否连接移动网络
*
* @param context
* @return
*/
public static boolean isMOBILEConnetion(Context context) {
ConnectivityManager cManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (info != null) {
return info.isConnected();
}
return false;
}
/**
* 检查wifi是否连接
*
* @param context
* @return
*/
public static boolean isWIFIConnetion(Context context) {
ConnectivityManager cManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (info != null) {
return info.isConnected();
}
return false;
}
}
ConnectivityManager cm = (ConnectivityManager) getSystemService(Activity.CONNECTIVITY_SERVICE);
boolean wifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
boolean sim = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
if (wifi || sim) {// 有开启wifi或者互联网
}else{
}
//-----------------------------------------------------------------------
public class NetUtil {
/**
* 检查用户网络连接情况
* @param context
* @return
*/
public static boolean checkNetConnetion(Context context) {
boolean wifi = isWIFIConnetion(context);
boolean mobile = isMOBILEConnetion(context);
if (mobile) {// 如果是连接移动APN,就获取代理ip的代理端口
readAPN(context);
}
if (mobile || wifi) {
return true;
} else {
return false;
}
}
/**
* 读取APN的代理ip和端口
*
* @param context
*/
private static void readAPN(Context context) {
Uri PREFERRED_APN_URI = Uri.parse("content://telephony/carriers/preferapn");// 4.0模拟器屏蔽掉该权限
// 操作联系人类似
ContentResolver resolver = context.getContentResolver();
// 判断是哪个APN被选中了
Cursor cursor = resolver.query(PREFERRED_APN_URI, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
String PROXY = cursor.getString(cursor.getColumnIndex("proxy"));
int PORT = cursor.getInt(cursor.getColumnIndex("port"));
}
}
/**
* 检查是否连接移动网络
*
* @param context
* @return
*/
public static boolean isMOBILEConnetion(Context context) {
ConnectivityManager cManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (info != null) {
return info.isConnected();
}
return false;
}
/**
* 检查wifi是否连接
*
* @param context
* @return
*/
public static boolean isWIFIConnetion(Context context) {
ConnectivityManager cManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (info != null) {
return info.isConnected();
}
return false;
}
}
相关文章推荐
- HTTP、TCP/IP、socket及bluetooth-socket的整理
- 【Linux 内核网络协议栈源码剖析】listen 函数剖析
- 【HTTP】Fiddler(一) - Fiddler简介和使用
- 套接字编程相关函数(2:TCP套接字编程相关函数)
- 关于DDOS攻击中TCP半连接数与FD的关系
- HttpClient(六)
- HttpClient(五)
- HttpClient(四)
- 7个开源的SNS社交网络平台
- httpClient(一)
- HTTP协议基础知识
- 利用zabbix监控tcp连接数
- 访问网络图片
- tcpdump使用范例
- iOS开发——post异步网络请求封装
- 初识Volley的基本用法
- UNIX网络进程间通信漫谈(1)
- 【Linux 内核网络协议栈源码剖析】bind 函数剖析
- 重构网络库
- JAVA代码java.net.URLConnection发送HTTP请求的方法