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漂浮背景效果的制作方法

    Android漂浮背景效果的制作方法

    这篇文章主要为大家详细介绍了Android漂浮背景效果的制作代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 基于RxJava框架实现获取验证码的辅助类

    基于RxJava框架实现获取验证码的辅助类

    这篇文章主要为大家详细介绍了基于RxJava框架实现获取验证码的辅助类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Android使用WebView播放flash的方法

    Android使用WebView播放flash的方法

    这篇文章主要介绍了Android使用WebView播放flash及判断是否安装flash插件的方法,以实例形式详细讲述了从布局、逻辑判断到功能最终实现播放Flash的方法,是Android程序设计中比较典型的应用,需要的朋友可以参考下
    2014-11-11
  • Android View 测量流程(Measure)全面解析

    Android View 测量流程(Measure)全面解析

    这篇文章主要为大家全面解析了Android View 测量流程Measure,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 浅谈Volley加载不出图片的问题

    浅谈Volley加载不出图片的问题

    下面小编就为大家带来一篇浅谈Volley加载不出图片的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Jetpack Compose对比React Hooks API相似度

    Jetpack Compose对比React Hooks API相似度

    这篇文章主要为大家介绍了Jetpack Compose对比React Hooks API相似度,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Android 实现银联刷卡机消费后手动签名的功能(示例代码)

    Android 实现银联刷卡机消费后手动签名的功能(示例代码)

    在一些商场购物时,不需要用笔在银联机上签名了,直接用手指触摸实现消费签名,非常方便,下面小编给大家分享Android 实现银联刷卡机消费后手动签名的功能,需要的朋友参考下吧
    2017-12-12
  • Android 开启闪光灯做手电筒的详解

    Android 开启闪光灯做手电筒的详解

    本篇文章是对Android中开启闪光灯做手电筒的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Android调用手机摄像头拍照和录音功能

    Android调用手机摄像头拍照和录音功能

    这篇文章主要为大家详细介绍了Android调用手机摄像头拍照和录音功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Android列表实现单选点击缩放动画效果

    Android列表实现单选点击缩放动画效果

    在android开发,我们会常常使用到缩放动画,这篇文章主要给大家介绍了关于Android列表实现单选点击缩放动画效果的相关资料,需要的朋友可以参考下
    2021-08-08

最新评论