Я знаю, что есть способ узнать, является ли сеть Wi-Fi плененным порталом, проверяя реакцию чего-то вроде "http://clients3.google.com/generate_204"
.Как узнать, что связанный Wi-Fi является Walled Gardened (Captive Portal)?
Но мой вопрос несколько иной. Мы все знаем, что на Android, когда мы подключаемся к сети WiFi, цикл соединения проходит через ряд состояний, упомянутых в классе NetworkInfo.DetailedState, например AUTHENTICATING
, OBTAINING_IPADDR
, VERIFYING_POOR_LINK
и т. Д. Кроме того, одно из состояний - CAPTIVE_PORTAL_CHECK
, а система Android - сеть, которая подключается, является неактивной или нет. Для этого Android использует CaptivePortalTracker#isCaptivePortal(InetAddress server), который приводит к boolean
. Таким образом, мы уверены, что Android знает, ограничено ли соединение (нет)
Итак, мой вопрос: . Система Android дает некоторый обратный вызов или какое-то состояние, с помощью которого мы можем узнать, что Сеть является невольным порталом без проверки это вручную? Так как система Android уже проверила сеть для портативного портала, нужно ли нам снова сделать то же самое?
P.S. Я ориентируюсь только на API 19 (KitKat 4.4.2).
Спасибо @ isma3l будет проверить это и вернуться обратно с еще одним спасибо :-) –
Привет @ isma3l, это требует API 23 (Зефир) для работы. У нас есть что-то подобное для предыдущих версий? –
@AnasAzeem см. В редакторе – isma3l