Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 判斷是否能真正上網

Android 判斷是否能真正上網

編輯:關於Android編程

Android裡判斷是否可以上網,常用的是如下方法:

	/**
	 * 檢測網絡是否連接
	 * 
	 * @return
	 */
	private boolean isNetworkAvailable() {
		// 得到網絡連接信息
		ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
		// 去進行判斷網絡是否連接
		if (manager.getActiveNetworkInfo() != null) {
			return manager.getActiveNetworkInfo().isAvailable();
		}
		return false;
	}


但是,有時候我們連接上一個沒有外網連接的WiFi或者需要輸入賬號和密碼才能鏈接外網的網絡,就會出現雖然網絡可用,但是外網卻不可以訪問。針對這種情況,一般的解決辦法就是ping一個外網,如果能ping通就說明可以真正上網,代碼如下

* @author sichard
     * @category 判斷是否有外網連接(普通方法不能判斷外網的網絡是否連接,比如連接上局域網)
     * @return
     */ 
    public static final boolean ping() { 
    
        String result = null; 
        try { 
                String ip = "www.baidu.com";// ping 的地址,可以換成任何一種可靠的外網 
                Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);// ping網址3次 
                // 讀取ping的內容,可以不加 
                InputStream input = p.getInputStream(); 
                BufferedReader in = new BufferedReader(new InputStreamReader(input)); 
                StringBuffer stringBuffer = new StringBuffer(); 
                String content = ""; 
                while ((content = in.readLine()) != null) { 
                        stringBuffer.append(content); 
                } 
                Log.d("------ping-----", "result content : " + stringBuffer.toString()); 
                // ping的狀態 
                int status = p.waitFor(); 
                if (status == 0) { 
                        result = "success"; 
                        return true; 
                } else { 
                        result = "failed"; 
                } 
        } catch (IOException e) { 
                result = "IOException"; 
        } catch (InterruptedException e) { 
                result = "InterruptedException"; 
        } finally { 
                Log.d("----result---", "result = " + result); 
        } 
        return false;


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved