package com.adblog.util;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.params.HttpClientParams;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Proxy;
import android.text.TextUtils;
public class NetworkManager {
private static NetworkManager instance = null;
private NetworkManager() {
}
public static NetworkManager getInstance() {
if (instance == null) {
synchronized (NetworkManager.class) {
if (instance == null) {
instance = new NetworkManager();
}
}
}
return instance;
}
/**
* 网络类型: 0.无网络 1.wifi 2.net网络 3.移动wap 4.联通wap 4.电信wap 5.未知网络
**/
public String getNetworkType(Context context) {
try {
ConnectivityManager connect = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo actNetInfo = connect.getActiveNetworkInfo();
if (actNetInfo == null) {
return C.NETWORK.DISABLED;
}
if (!actNetInfo.isAvailable()) {
return C.NETWORK.DISABLED;
}
int netType = actNetInfo.getType();
if (netType == ConnectivityManager.TYPE_WIFI) {
return C.NETWORK.WIFI;
}
if (netType != ConnectivityManager.TYPE_MOBILE) {
return C.NETWORK.MOBILE;
}
return C.NETWORK.MOBILE;
} catch (Exception e) {
return C.NETWORK.MOBILE;
}
}
/**
* 是否有可用网络
*
* @param context
* @return
*/
public boolean isNetworkAvailable(Context context) {
return isWifiConnected(context) || isMobileConnected(context);
}
/**
* WIFI是否连接
*
* @param context
* @return
*/
public boolean isWifiConnected(Context context) {
try {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifi != null && wifi.isConnected()) {
return true;
}
} catch (Exception e) {
}
return false;
}
/**
* 2G/3G是否连接
*
* @param context
* @return
*/
public boolean isMobileConnected(Context context) {
try {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobile = connectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobile != null && mobile.isConnected()) {
return true;
}
} catch (Exception e) {
}
return false;
}
}