Android 判断是否能真正上网

来源:互联网 发布:c语言中sleep函数 编辑:程序博客网 时间:2024/06/13 20:16

有时候我们连接上一个没有外网连接的WiFi或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是ping一个外网。

* @author suncat
     * @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;

转载 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0109/2291.html

0 0
原创粉丝点击