写了个判断网络状态的工具类,可以直接拿过来用。
public class NetTools {
/* 代码IP */
private static String PROXY_IP = null;
/* 代理端口 */
private static int PROXY_PORT = 0;
// 判断当前是否有网络连接
public static boolean isNetwork(Context context) {
boolean network = isWifi(context);
boolean mobilework = isMobile(context);
if (!network && !mobilework) { // 无网络连接
Log.d("NetTools", "无网路链接!");
return false;
} else if (network == true && mobilework == false) { // wifi连接
Log.d("NetTools", "wifi连接!");
} else { // 网络连接
Log.d("NetTools", "手机网路连接,读取代理信息!");
readProxy(context); // 读取代理信息
return true;
}
return true;
}
// 读取网络代理
public static void readProxy(Context context) {
Uri uri = Uri.parse("content://telephony/carriers/preferapn");
ContentResolver resolver = context.getContentResolver();
Cursor cursor = resolver.query(uri, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
PROXY_IP = cursor.getString(cursor.getColumnIndex("proxy"));
PROXY_PORT = cursor.getInt(cursor.getColumnIndex("port"));
Log.d("NetTools", ",PROXY_IP = " + PROXY_IP + ",PROXY_PORT = "
+ PROXY_PORT);
}
cursor.close();
}
// 判断当前网络是否是手机网络
public static boolean isMobile(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (networkInfo != null) {
return networkInfo.isConnected();
}
return false;
}
// 判断当前网络是否是wifi
public static boolean isWifi(Context context) {
ConnectivityManager manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (info != null) {
return info.isConnected();
}
return false;
}
}