相关疑难解决方法(0)

获取 WiFi 强制门户信息

有没有办法访问 Android 的广播,即 WiFi 连接当前是一个强制门户(需要网络登录)?Android 似乎内置了这个。如果不是广播接收器,有没有办法检查强制门户检查的结果?我相信它正在使用这个类,它对 API 是隐藏的:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.L_preview/android/net/CaptivePortalTracker.java

在 4.2 之前,它可能使用:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.2_r1/android/net/wifi/WifiWatchdogStateMachine.java

背景:

我一直在使用我自己的方法来检测 WiFi 是否可能需要登录。我会等待 WiFi 连接状态,然后 ping 一个站点并确保有响应。在大多数情况下,这似乎很有效。另一种策略是执行 HttpRequest 并检查重定向或您收到的响应正文,类似于上面列出的类中的 Android 策略。

但是,Lollipop 的新功能是在 WiFi 没有连接时使用移动数据连接。这意味着我的 ping 方法仍将返回结果,并且不会发生重定向,因为请求将通过移动数据路由。

有没有办法获得 Android 的 WiFi 强制门户的当前状态?如果没有,我们能否确保请求通过 WiFi 传输,即使 Android 没有看到连接?

android wifi android-5.0-lollipop

5
推荐指数
1
解决办法
5054
查看次数

标签 统计

android ×1

android-5.0-lollipop ×1

wifi ×1