有时候手机连接上WiFi,未必就可以上网了。
因为有些WiFi需要登录认证通过之后才能上网。
那么,Android开发如何判断WiFi是否可以上网呢?
其实也比较简单,下面就来说一下。
HttpURLConnection支持重定向功能,
当设备连接上WiFi之后,使用HttpURLConnection访问“http://captive.apple.com/”,
因为有些WiFi需要登录认证通过之后才能上网。
那么,Android开发如何判断WiFi是否可以上网呢?
其实也比较简单,下面就来说一下。
HttpURLConnection支持重定向功能,
当设备连接上WiFi之后,使用HttpURLConnection访问“http://captive.apple.com/”,
如果返回了“Success”则表示成功,如下
如果当前WiFi需要登录认证的话,HttpURLConnection会被重定向到登录页面,
那么返回的内容肯定就不是上面的内容了(WiFi万能钥匙就是这样做的)
除了以上方法之外,还有一种方法,这是最近在翻阅HttpURLConnection的API文档时发现的,其说明如下:
在一个WIFI网络中,在用户进行登录之后,网络都是一直被阻止的。这种登录页面通常是通过HTTP重写向来实现的。你可以调用getURL()方法来测试你的连接是否已经被意外重定向了。使用这种方法,需要你获得响应头,以下是一个示例: