Android網絡工具類:NetWorkHelper

jopen 10年前發布 | 28K 次閱讀 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!