当前位置: 首页 > 编程笔记 >

Android中判断网络连接状态的方法

卓雅达
2023-03-14
本文向大家介绍Android中判断网络连接状态的方法,包括了Android中判断网络连接状态的方法的使用技巧和注意事项,需要的朋友参考一下

App判断用户是否联网是很普遍的需求,实现思路大概有下面几种

  • 利用Android自带的ConnectivityManager类
  • 有时候连上了wifi,但这个wifi是上不了网的,我们可以通过ping www.baidu.com来判断是否可以上网
  • 也可以利用get请求访问www.baidu.com,如果get请求成功,说明可以上网

1、判断网络是否已经连接

// check all network connect, WIFI or mobile
public static boolean isNetworkAvailable(final Context context) {
  boolean hasWifoCon = false;
  boolean hasMobileCon = false;
 
  ConnectivityManager cm = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
  NetworkInfo[] netInfos = cm.getAllNetworkInfo();
  for (NetworkInfo net : netInfos) {
 
    String type = net.getTypeName();
    if (type.equalsIgnoreCase("WIFI")) {
      LevelLogUtils.getInstance().i(tag, "get Wifi connection");
      if (net.isConnected()) {
        hasWifoCon = true;
      }
    }
 
    if (type.equalsIgnoreCase("MOBILE")) {
      LevelLogUtils.getInstance().i(tag, "get Mobile connection");
      if (net.isConnected()) {
        hasMobileCon = true;
      }
    }
  }
  return hasWifoCon || hasMobileCon;
 
}

2、利用 ping 判断 Internet 能够 请求成功
Note:有时候连上了网络, 但却上不去外网

// network available cannot ensure Internet is available
public static boolean isNetWorkAvailable(final Context context) {
  Runtime runtime = Runtime.getRuntime();
  try {
    Process pingProcess = runtime.exec("/system/bin/ping -c 1 www.baidu.com");
    int exitCode = pingProcess.waitFor();
    return (exitCode == 0);
  } catch (Exception e) {
    e.printStackTrace();
  }
  return false;
}

考虑到网络, 我们 ping 了www.baidu.com
国外的话可以 ping 8.8.8.8

3、其他方案 模拟 get 请求

也可以访问网址, 看 get 请求能不能成功

URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
if (urlc.getResponseCode() == 200) {
  return new Boolean(true);
}

以上就是本文的全部内容,希望对大家学习Android软件编程有所帮助。

 类似资料:
  • 本文向大家介绍Android中监听判断网络连接状态的方法,包括了Android中监听判断网络连接状态的方法的使用技巧和注意事项,需要的朋友参考一下 在无网或网速差的状态下,没必要去连接服务器。 你可以使用 ConnectivityManager 来判断是否连到网络,以及网络类型。 判断是否有网络连接 下面的代码用ConnectivityManager查询是活动网络连接判断是否有Internet连接

  • 本文向大家介绍Android编程判断网络连接是否可用的方法,包括了Android编程判断网络连接是否可用的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程判断网络连接是否可用的方法。分享给大家供大家参考,具体如下: 为了提高用户体验,我们在开发 android 应用的过程需要联网获取数据的时候我们首先要做的一步就是: 1.判断当前手机是否打开了网络 2.打开了网络是否

  • 本文向大家介绍PHP判断是否连接上网络的方法,包括了PHP判断是否连接上网络的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP判断是否连接上网络的方法。分享给大家供大家参考。具体实现方法如下: 首先写个函数 接着在需要的地方直接调用即可 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍Android网络连接判断与相关处理,包括了Android网络连接判断与相关处理的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了Android网络连接判断与相关处理,供大家参考,具体内容如下 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。  <uses-permission android:name="android.permission.A

  • 本文向大家介绍使用JS在浏览器中判断当前网络连接状态的几种方法,包括了使用JS在浏览器中判断当前网络连接状态的几种方法的使用技巧和注意事项,需要的朋友参考一下 使用JS在浏览器中判断当前网络状态的几种方法如下: 1. navigator.onLine 2. ajax请求 3. 获取网络资源 4. bind() 1. navigator.onLine 通过navigator.onLine判断当前网络

  • 本文向大家介绍Android中判断网络是否连接实例详解,包括了Android中判断网络是否连接实例详解的使用技巧和注意事项,需要的朋友参考一下 Android中判断网络是否连接实例详解 在android中,如何监测网络的状态呢,这个有的时候也是十分重要的,方法如下: 调用: 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!