android 下的判断网络是否连通的方法。

参考文章

 

https://www.jianshu.com/p/1b542cece605

注意点

  1. windows上和linux上的参数意义是不一样的
  2. 安卓6以上用NetworkCapabilities 。6.00以下用经典方法。

Runtime runtime = Runtime.getRuntime();
                  try {
                    Process p = runtime.exec("ping -c 3 www.baidu.com");
                    int ret = p.waitFor();
                    Log.i("Avalible", "Process:"+ret);
                } catch (Exception e) {
                    e.printStackTrace();
                }

经典方法。因android底层是linux 。echo $? 可以查看上一条命令执行的结果。零表示成功执行。其它值表示失败。

android 下的判断网络是否连通的方法。_第1张图片

所以我们能得到一个返回值。ret 当你试一下。就可以知道返回值代表什么意思了。见参考文章。

然而。

我在android 判断wifi 的时候。

我使用的NetworkCapabilities  。 这个是可以注册一下。然后有个回调函数的。网络变化时回调。(百度)。

我发现从wifi打开到连上。居然被回调了四次。由于我的水平有限,不知道怎么区分这四次(因为我要wifi自动登录。多次登录会掉线)。我使用了经典方法ping 只要通了,就不能登录。不过ping时间是点长。

 

你可能感兴趣的:(andriod,ping,安卓,网络连通)