Android網絡工具類:NetWorkHelper
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; } } </pre><br />
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!