Как отключить обнаружение портала? Как убрать восклицательный знак на Wi-Fi или значок сигнала в Lollipop?

36

При подключении к Интернету система проверяет, находится ли он в окруженном стеной саду, который просто пытается подключиться к Google. В случае сбоя в Android 5 на значке WiFi или значке сигнала будет восклицательный знак.

В некоторых ситуациях это раздражает. Скажем, в Китае Google заблокирован, всегда будет восклицательный знак, что бессмысленно.

Как я могу отключить эту проверку, и заставить систему предполагать, что подключенные WiFi / мобильные данные подключены к Интернету?

Цянь
источник
Открыто, потому что это другой вопрос IMO. Вы можете отключить это, не сталкиваясь с проблемой в другом вопросе.
Мэтью Прочитано

Ответы:

33

Это просто. В терминале (требуется root) или в adb shell(не требует root) введите команду

settings put global captive_portal_detection_enabled 0

и перезагрузите компьютер. Это должно быть отключено. Существующее состояние также можно проверить с помощью команды

settings get global captive_portal_detection_enabled

Ответ «null» означает, что значение глобального ключа не было установлено, и Android вернется к значению по умолчанию, когда он включен и выполняет обнаружение. Если обнаружение отключено, ответ «0» будет получен.

More info: Android: Как убрать обнаружение «плененного портала» на android 4.2.2 и 4.3

Это также работает в 5.

Цянь
источник
Большой! Отмечу, что ссылка описывает это в 4.2.2 и 4.3. Проверяли ли вы (или кто-либо еще), что это также работает в 5.0.x?
Flyto
@SimonW да, это работает. Вот почему я пометил вопрос леденец. Я использую CyanogenMod 12, хотя.
Цянь
Я в Android Noob. Нужно ли рутировать это, чтобы заставить это пойти?
Кристиан Бонджорно
1
Комментарий Гери , у которого нет представителя: для тех, кто впервые использует терминал, не забудьте поставить команду «su» перед тем, как что-либо сделать, чтобы разрешить права суперпользователя. (Мне потребовалось некоторое время, чтобы понять, почему я получаю «отказано в разрешении»).
Иззи
1
Начиная с Nougat (я думаю, может быть только 7.1.2, или уже Зефир), используйте settings put global captive_portal_mode 0вместо этого, см. Jira.lineageos.org/browse/REGRESSION-620
bonob
13

В Android M Developer Preview для Shamu (Nexus 6) и, возможно, других сборок этой ОС, ОС captive_portal_server globalиспользуется независимо от состояния captive_portal_detection_enabledдля определения работоспособности сети WiFi.

Для сетей WiFi, он не только нарисует восклицательный знак на значке силы, он будет занесен в черный список, что SSID от автоматического переподключения, если он не успешно curlURL, указанный в captive_portal_server globalчерез этот SSID. Ручное переподключение разрешено, но будет оставаться подключенным, только если у вас есть captive_portal_detection_enabledи выберете «Использовать эту сеть как есть» вручную, каждый раз при подключении к этому WiFi SSID. Это переопределение является временным.

В сетях операторов мобильной связи captive_portal_serverзначок используется только для рисования восклицательного знака на значке силы, но он остается подключенным, и трафик будет течь, если подключение функционирует.

На вашем рутированном устройстве решение состоит в том, чтобы повторно включить его, captive_portal_detection_enabledесли вы его отключили, подключиться к этой сети Wi-Fi, выбрать «Использовать эту сеть как есть» в раскрывающемся меню во всплывающем окне портала, отключить мобильную сеть. данные, чтобы сосредоточиться на определении веб-сайта, который можно получить через вашу сеть Wi-Fi, войдя в свой портал, а затем используйте браузер, чтобы найти тот, который работает. После этого вы можете отключить, captive_portal_detection_enabledчтобы предотвратить раздражающее всплывающее окно.

Чтобы включить ваш captive_portal_detection, если вы ранее отключили его, введите команду:

settings put global captive_portal_detection_enabled 1

Отключите мобильную сеть (в разделе «Настройки» - «Использование данных» - «Мобильные данные» - «Выкл.»), Чтобы временно использовать телефон для использования сети WiFi для всего трафика. Это не потребуется, если у вас есть все настройки, где они должны быть.

Android M, кажется, требует, чтобы веб-сайт загружался успешно и не возвращал активно 204 (без контента).

Несколько вариантов включают, но не ограничиваются

androidcheck.kiritostudio.com
captive.apple.com
www.textise.net
the network router
localhost
127.0.0.1 (if you have an onboard simple HTTP server)
and the list goes on...

Найдя тот, который работает для вашей сети Wi-Fi (часто требует большего воображения и попыток использовать прокси-серверы корпоративного веб-шлюза, которые не любят трафик HTTPS до аутентификации), вы можете сохранить сервер.

Сохраните сервер, запустив его в своем терминальном приложении с включенным корнем, заменив пример URL на тот, который, как вы надеетесь, будет работать:

settings put global captive_portal_server androidcheck.kiritostudio.com

Перезагрузите ваше устройство. Попробуйте это. Если вы довольны поведением восклицательных знаков на значках, последний шаг - отключить всплывающее окно портала, которое является одним из самых неудачных изобретений этого десятилетия.

Команда выдачи:

settings put global captive_portal_detection_enabled 0

Если вы оказались в другой стране или в ситуации Wi-Fi, где возникают проблемы, к сожалению, вам нужно будет повторить вышеизложенное с самого начала, повторно включив captive_portal_detection_enabled, перезапустив, найдя нужный сервер, а затем отключив обнаружение портала впоследствии.

Android M User
источник
Вы имели в виду HTTP 204 ( без содержимого ) или HTTP 404 (не найден)? В настоящее время я изменился на «нет контента» на основании другого ответа
Эндрю Т.
Это решило проблему «подключен, нет интернета» на нуге. Запуск свежего мелькающего CM14.1 (7.1.2) на Nexus.
Ивон
1

Вы можете настроить свой адрес сервера портала.

settings put global captive_portal_server g.cn

Затем перезагрузите телефон.

PS: До этого вы можете проверить доступность сервера.

http://g.cn/generate_204

Кебин Лю
источник
Предпочитаю g.cn для материкового Китая
youfu
Я получаю HTTP-ошибку 404.0 - Не найдено
Lucky
@ Лаки Пожалуйста, используйте g.cn.
Кебин Лю