Android判斷網絡狀態並遠程獲取數據

public class NetUtility {

    /**
     * 獲取網絡是否連接
     * @param context
     * @return 網絡是連通的話返回true,都則返回false。
     */
    public static boolean isNetworkAvailable(Context context) {
        try {
            ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            if (connectivity != null) {
                NetworkInfo info = connectivity.getActiveNetworkInfo();
                if (info != null && info.isConnected()) {
                    if (info.getState() == NetworkInfo.State.CONNECTED) {
                        return true;
                    }
                }
            }
        } catch (Exception e) {

        }
        return false;
    }

    /**
     * 從網上獲取文本內容
     * @param strURL 服務器地址
     * @return 服務器端的響應文本內容。出錯則返回null。
     */
    public static String getNetText(String strURL){
        try {
            URL url = new URL(strURL);
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setConnectTimeout(5000);
            con.connect();

            InputStreamReader is = new InputStreamReader(con.getInputStream());
            BufferedReader br = new BufferedReader(is);
            String line;
            StringBuffer sb = new StringBuffer();
            while ((line = br.readLine()) != null) {
                sb.append(line);
            }
            br.close();
            is.close();
            con.disconnect();

            return sb.toString();

        }catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章