码迷,mamicode.com
首页 > 移动开发 > 详细

Android 判断是否能真正上网

时间:2015-01-14 09:46:57      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:

Android里判断是否可以上网,常用的是如下方法:

 

1
2
3
4
5
6
7
8
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;

 

推推族,免费得门票,游景区:www.tuituizu.com

结伴旅游,一个免费的交友网站:www.jieberu.com

Android 判断是否能真正上网

标签:

原文地址:http://www.cnblogs.com/rabbit-bunny/p/4223143.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!