- import android.content.Context;
- import android.net.ConnectivityManager;
- import android.net.NetworkInfo;
- import android.net.Uri;
- import android.net.NetworkInfo.State;
- import android.telephony.TelephonyManager;
- import android.util.Log;
- public class NetWorkHelper {
- public static final int NETWORN_NONE = 0;
- public static final int NETWORN_WIFI = 1;
- public static final int NETWORN_MOBILE = 2;
- private static String LOG_TAG = "NetWorkHelper";
- public static Uri uri = Uri.parse("content://telephony/carriers");
- /**
- * 判断是否有网络
- */
- public static boolean isNetworkAvailable(Context context) {
- ConnectivityManager connectivity = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- if (connectivity == null) {
- Log.w(LOG_TAG, "couldn't get connectivity manager");
- } else {
- NetworkInfo[] info = connectivity.getAllNetworkInfo();
- if (info != null) {
- for (int i = 0; i < info.length; i++) {
- if (info[i].isAvailable()) {
- Log.d(LOG_TAG, "network is available");
- return true;
- }
- }
- }
- }
- Log.d(LOG_TAG, "network is not available");
- return false;
- }
- /**
- * 检查网络状态
- * @param context
- * @return
- */
- public static boolean checkNetState(Context context){
- boolean netstate = false;
- ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
- if(connectivity != null)
- {
- NetworkInfo[] info = connectivity.getAllNetworkInfo();
- if (info != null) {
- for (int i = 0; i < info.length; i++)
- {
- if (info[i].getState() == NetworkInfo.State.CONNECTED)
- {
- netstate = true;
- break;
- }
- }
- }
- }
- return netstate;
- }
- /**
- * 判断网络是否为漫游
- */
- public static boolean isNetworkRoaming(Context context) {
- ConnectivityManager connectivity = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- if (connectivity == null) {
- Log.w(LOG_TAG, "couldn't get connectivity manager");
- } else {
- NetworkInfo info = connectivity.getActiveNetworkInfo();
- if (info != null
- && info.getType() == ConnectivityManager.TYPE_MOBILE) {
- TelephonyManager tm = (TelephonyManager) context
- .getSystemService(Context.TELEPHONY_SERVICE);
- if (tm != null && tm.isNetworkRoaming()) {
- Log.d(LOG_TAG, "network is roaming");
- return true;
- } else {
- Log.d(LOG_TAG, "network is not roaming");
- }
- } else {
- Log.d(LOG_TAG, "not using mobile network");
- }
- }
- return false;
- }
- /**
- * 判断MOBILE网络是否可用
- *
- * @param context
- * @return
- * @throws Exception
- */
- public static boolean isMobileDataEnable(Context context) {
- ConnectivityManager connectivityManager = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- boolean isMobileDataEnable = false;
- isMobileDataEnable = connectivityManager.getNetworkInfo(
- ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
- return isMobileDataEnable;
- }
- /**
- * 判断wifi 是否可用
- * @param context
- * @return
- * @throws Exception
- */
- public static boolean isWifiDataEnable(Context context) {
- ConnectivityManager connectivityManager = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- boolean isWifiDataEnable = false;
- isWifiDataEnable = connectivityManager.getNetworkInfo(
- ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
- return isWifiDataEnable;
- }
- public static int getNetworkState(Context context){
- ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
- //Wifi
- State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
- if(state == State.CONNECTED||state == State.CONNECTING){
- return NETWORN_WIFI;
- }
- //3G
- state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
- if(state == State.CONNECTED||state == State.CONNECTING){
- return NETWORN_MOBILE;
- }
- return NETWORN_NONE;
- }
- }
转自http://blog.csdn.net/caiwenfeng_for_23/article/details/38100711