服务器之家

服务器之家 > 正文

Android 判断是否有外网连接

时间:2021-06-03 16:13     来源/作者:Android开发网

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或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是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
36
/* @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;
}
标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部