Android 判斷是否能真正上網

Android裏判斷是否能夠上網,經常使用的是以下方法:html

 

?網絡

1app

2spa

3.net

4code

5htm

6ip

7ci

8get

9

10

11

12

13

14

/**

 * 檢測網絡是否鏈接

 *

 * @return

 */

private boolean isNetworkAvailable() {

    // 獲得網絡鏈接信息

    ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    // 去進行判斷網絡是否鏈接

    if (manager.getActiveNetworkInfo() != null) {

        return manager.getActiveNetworkInfo().isAvailable();

    }

    return false;

}

 

 

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

 

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

@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;

相關文章
相關標籤/搜索