networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
这种方式无法真正判断网络可用性,经测试,让设备连接关闭了数据流量的热点,上面代码会返回true,但此时只是连接成功,依然不能访问网络。建议使用以下ping的方式判断。
Process process = Runtime.getRuntime().exec("ping -c 3 " + ip);
//process.waitFor() 返回0,当前网络可用
//process.waitFor() 返回1,需要网页认证的wifi
//process.waitFor() 返回2,当前网络不可用
int ret = process.waitFor();
Android功能点(一)——判断网络是否真正连通我们知道,当手机上显示网络连接成功时,并不一定可以真的上网。常见的情况是,连上路由后需要进行跳转登录,或者干脆路由连接到网络的端口坏掉。因此在进行网络通讯前,可能需要确认网络...