Android(安卓)判断是否能真正上网
16lz
2021-01-26
http://www.cnblogs.com/tianzhijiexian/p/4161883.html
有时候我们连接上一个没有外网连接的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;
更多相关文章
- SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- android应用开发:android网络通信
- Android网络之HttpUrlConnection和Socket关系解析
- Android(安卓)RFCOMM connect() faild 记录(未解决)
- Android开发环境——连接驱动ADB相关内容汇总
- 打造自己的Android聊天软件(socket篇)
- Android(安卓)检测网络连接状态
- Android(安卓)蓝牙相关开发
- adb wifi 链接调试Android设备