Android 判断是否有外网连接
更新时间:2016年02月17日 14:19:27 投稿:hebedich
本文给大家分享的是使用Android实现判断是否有外网链接,有需要的小伙伴可以参考下。
Android里判断是否可以上网,常用的是如下方法:
/** * 检测网络是否连接 * * @return */ private boolean isNetworkAvailable() { // 得到网络连接信息 ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); // 去进行判断网络是否连接 if (manager.getActiveNetworkInfo() != null) { return manager.getActiveNetworkInfo().isAvailable(); } return false; }
有时候我们连接上一个没有外网连接的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; }
相关文章
Android View 测量流程(Measure)全面解析
这篇文章主要为大家全面解析了Android View 测量流程Measure,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-02-02Jetpack Compose对比React Hooks API相似度
这篇文章主要为大家介绍了Jetpack Compose对比React Hooks API相似度,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-08-08Android 实现银联刷卡机消费后手动签名的功能(示例代码)
在一些商场购物时,不需要用笔在银联机上签名了,直接用手指触摸实现消费签名,非常方便,下面小编给大家分享Android 实现银联刷卡机消费后手动签名的功能,需要的朋友参考下吧2017-12-12
最新评论