判断Android 网络已连接状态下,网络是否可用。

首先分析是否链接网络;

在根据Android版本判断网络是否可用:6.0以后系统提供API可用,6.0之前使用ping命令即可。

public static boolean netCanUse(Context context) {        if (context != null) {            ConnectivityManager mConnectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();            if (mNetworkInfo != null) {                if (!mNetworkInfo.isAvailable()) {                    return false;                }                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {                    NetworkCapabilities networkCapabilities = mConnectivityManager.getNetworkCapabilities(mConnectivityManager.getActiveNetwork());                    return networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);                } else {                    Runtime runtime = Runtime.getRuntime();                    try {                        Process ipProcess = runtime.exec("ping -c 3 www.baidu.com");                        int exitValue = ipProcess.waitFor();                        Log.i("Avalible", "Process:" + exitValue);                        return (exitValue == 0);                    } catch (IOException | InterruptedException e) {                        e.printStackTrace();                    }                }            }        }        return false;    }

更多相关文章

  1. Android 网络监视器源码
  2. 使用命令行在手机上运行android单元测试
  3. Android adb不是内部或外部命令
  4. 【Android】MTK Android 编译命令
  5. Android终端命令执行编译命令()
  6. Android 通过代码实现控制数据网络的开关(仅适用于5.0以上)
  7. Android 中的网络操作(HttpURLConnection)

随机推荐

  1. Android ActivityManagerService(AMS)的进
  2. Android自动化测试工具——robotium
  3. Android应用程序启动
  4. Android视图加载到窗口的过程分析
  5. 将 cglib 动态代理思想带入 Android 开发
  6. 在Android 中使用KSOAP2调用WebService(一
  7. Android Recovery 解析
  8. android 弹出的软键盘遮挡住EditText文本
  9. Android的binder机制分析
  10. Android之Http网络编程(一)