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通过Socket与服务器之间进行通信的示例

    Android通过Socket与服务器之间进行通信的示例

    这篇文章主要介绍了Android通过Socket与服务器之间进行通信的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Android使用相机实现拍照存储及展示功能详解

    Android使用相机实现拍照存储及展示功能详解

    这篇文章主要介绍了Android使用相机实现拍照存储及展示功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-01-01
  • Android程序开发之防止密码输入错误 密码明文显示功能

    Android程序开发之防止密码输入错误 密码明文显示功能

    在使用App的时候,首次登录都需要用户输入密码的,有些朋友为了安全起见密码设置的比较长,导致很多次密码都输入错误,严重影响了用户体验效果,下面通过本文给大家介绍Android程序开发之防止密码输入错误 密码明文显示功能,需要的朋友参考下
    2016-02-02
  • Android编程实现圆角边框的方法

    Android编程实现圆角边框的方法

    这篇文章主要介绍了Android编程实现圆角边框的方法,涉及Android针对样式布局的相关设置技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Android自定义ViewGroup多行多列效果

    Android自定义ViewGroup多行多列效果

    这篇文章主要为大家详细介绍了Android自定义ViewGroup多行多列效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Android 双击Back键退出应用的实现方法

    Android 双击Back键退出应用的实现方法

    这篇文章主要介绍了Android 双击Back键退出应用的实现方法的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下
    2017-10-10
  • Android严苛模式StrictMode使用详解

    Android严苛模式StrictMode使用详解

    StrictMode类是Android 2.3 (API 9)引入的一个工具类,可以用来帮助开发者发现代码中的一些不规范的问题,以达到提升应用响应能力的目的
    2018-01-01
  • Android本地存储SharedPreferences详解

    Android本地存储SharedPreferences详解

    这篇文章主要介绍了Android本地存储SharedPreferences详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • Android图片采样缩放功能实例代码

    Android图片采样缩放功能实例代码

    是为了更加高效的加载Bitmap。所以我们需要把android中的图片进行采样缩放,下面小编给大家分享Android图片采样缩放功能实例代码,需要的朋友参考下吧
    2017-11-11
  • android中处理各种触摸事件的方法浅谈

    android中处理各种触摸事件的方法浅谈

    android中处理各种触摸事件的方法浅谈,需要的朋友可以参考一下
    2013-06-06

最新评论