android 如何检测连接的wlan wifi需要portal认证

csuhanyong 2014-08-03 10:57:19
某些手机管家软件在手机连接上CMCC等wifi时,会弹出通知栏提示跳转到webview去进行portal验证。
他们是怎么检测的呢?有知道的麻烦通知下。万谢。

我在网上也搜了些资料,说对于这种wlan,android发起一个http请求,会返回一个302的重定向的报文,然后去获取“location”的重定向地址。但是不成功,下面是我的代码,请大牛帮忙看下到底是哪里出现的问题

//禁止android自动执行重定向
public class RedirectHandler extends DefaultRedirectHandler {

@Override
public boolean isRedirectRequested(HttpResponse response,
HttpContext context) {
return false;
}

}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
HttpPost httppost = new HttpPost(PortalActivity.TEST_URL);
DefaultHttpClient httpClient = new DefaultHttpClient();
try {
RedirectHandler redirectHandler=new RedirectHandler();
//禁止android自动执行重定向
httpClient.setRedirectHandler(redirectHandler);
HttpResponse response=httpClient.execute(httppost);
int state = response.getStatusLine().getStatusCode();
if(state == 302){
Header[] headers = response.getAllHeaders();
for(Header h : headers){
if("location".equalsIgnoreCase(h.getName())){
return h.getValue();
}
}
}
} catch (Exception e) {
return null
}

...全文
1126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
振_兴 2016-04-14
  • 打赏
  • 举报
回复
请问这个问题解决了吗?我最近也在做这个,可以指点一下吗?
Jimstin 2015-07-29
  • 打赏
  • 举报
回复
我知道,我可以告诉你
guan506713512 2015-06-25
  • 打赏
  • 举报
回复
解决了吗?很想知道怎么解决的
张志来 2015-01-08
  • 打赏
  • 举报
回复
首先看一下是不是在线程中进行的网络请求,其次看一下url是不是http开头的。
csuhanyong 2014-08-08
  • 打赏
  • 举报
回复
目前采用了你的方式,用了个隐藏的webview去load一个连接。
玩味Orz 2014-08-04
  • 打赏
  • 举报
回复
个人觉得应该是当连上CMCC时,手机管家类似的软件会发送一个HTTP请求,比如手机管家可能就去请求qq.com这个网站,当响应的不是我请求的网站时,那么就可以认为这个wifi需要进行porta验证。 并且,验证的界面是由CMCC去跳转的

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧