Является ли строка "captive_portal_detected" из NetworkInfo getExtraInfo() надежной индикацией портала авторизации?

У меня Samsung 6.0.1, который я использую в своей разработке. Я хочу знать, является ли сеть внутренним порталом. В последнее время произошли изменения, которые делают эту информацию известной разработчику, что приятно. Но, похоже, нет способа просто извлечь данные из NetworkInfo.

Я обнаружил, что, если я могу получить экземпляр Wi-Fi NetworkInfo, я могу вызвать getExtraInfo, и в нем будет указана ссылка на портал авторизации в виде строки "captive_portal_detected". Странно, что это строка, а не логическое свойство, но это не мой вопрос.

В какой версии Android эта строка начала появляться, и является ли она частью обычной ОС или чем-то, что парни из Samsung вытащили для s7? Могу ли я полагаться на эту строку в качестве индикатора того, что точка доступа, связанная с NetworkInfo, на самом деле является порталом? Нет документации по этому значению, которую я могу найти где-либо.

1 ответ

Решение

В документации говорится, что при возврате метода getExtraInfo возвращается информация, предоставленная нижними уровнями сети: http://developer.android.com/intl/pt-br/reference/android/net/NetworkInfo.html

Таким образом, если getExtraInfo вернется, если он находится на встроенном портале, который определяется сетевым оборудованием, я рекомендую вам избегать зависимости от обнаруженного оборудования.

Вот пример того, как узнать, находится ли пользователь в неавторизованном портале: Как проверить неограниченный доступ в Интернет? (обнаружение портала в неволе)

Другие вопросы по тегам