Java 如何检查活动WIFI连接是否是android中的热点(不是移动热点)?
我想检查设备的当前internet连接状态 到目前为止,我一直尝试使用HttpURLConnection和connect()连接URL,然后通过响应代码处理结果。对于200,这将是一个稳定的连接。如果URL重定向(例如在本例中重定向到热点登录页面),则响应将为3xx 然而,这在所有运行安卓5.0.1及更低版本的设备上运行良好。从5.0.2开始,我得到了所有州的302分:Java 如何检查活动WIFI连接是否是android中的热点(不是移动热点)?,java,android,url,https,connection,Java,Android,Url,Https,Connection,我想检查设备的当前internet连接状态 到目前为止,我一直尝试使用HttpURLConnection和connect()连接URL,然后通过响应代码处理结果。对于200,这将是一个稳定的连接。如果URL重定向(例如在本例中重定向到热点登录页面),则响应将为3xx 然而,这在所有运行安卓5.0.1及更低版本的设备上运行良好。从5.0.2开始,我得到了所有州的302分: 已连接到热点,但未登录(实际返回302) 已连接到热点并已登录 连接到移动数据 我的想法是,它重定向到httpsURL,因此返
受保护整数doInBackground(Void…voids){
Log.d(标签“检查互联网…”);
ConnectivityManager cm=(ConnectivityManager)getActivity().getSystemService(Context.CONNECTIVITY_服务);
NetworkInfo activeNetwork=cm.getActiveNetworkInfo();
//如果活动网络或移动数据可用且已连接
if(activeNetwork!=null&&activeNetwork.isConnected(){
试一试{
URL URL=新URL(测试URL);
HttpURLConnection urlc=(HttpURLConnection)url.openConnection();
setRequestProperty(“用户代理”、“测试”);
setRequestProperty(“连接”、“关闭”);
setConnectTimeout(超时);
//尝试访问URL(本例中为“Google.com”)
Log.d(标记“尝试访问”+测试URL);
connect();
responseCode=urlc.getResponseCode();
Log.d(标记,“响应代码:”+String.valueOf(responseCode));
if(responseCode>=信息性&responseCode=稳定连接和responseCode<重定向){
//2xx=稳定
如果(cm.isActiveNetworkMetered()){
Log.d(标记“活动连接已计量”);
返回移动_数据;//测量数据时
}
返回可用的INTERNET地址;
}else if(responseCode>=重定向和responseCode=C\u错误和responseCode=S\U错误){
//5xx=服务器错误
Log.d(标记“服务器错误”);
返回服务器错误;
}
}捕获(SocketTimeoutException e){
Log.d(标记“错误检查internet连接(超时)”;
返回连接超时;
}捕获(IOE异常){
Log.d(标记“错误检查internet连接(IOException)”,e);//错误返回false
不返回互联网;
}
}
//当既没有活动网络也没有移动数据时,返回false
Log.d(标签“既不移动数据也不连接wifi”);
不返回互联网;
}
所以,我的问题是:有没有什么解决办法,在我不应该被重定向的时候,我不会被重定向?或者,如果活动连接是公共热点(如Telekom热点或类似热点),是否有更好的方法来检查 提前谢谢