2016-05-07 4 views
1

У меня есть Samsung 6.0.1, который я использую в своем развитии. Я хочу знать, является ли сеть незащищенным порталом. Были недавние изменения, которые делают эту информацию известной разработчику, что приятно. Но, похоже, нет способа просто извлечь данные из NetworkInfo.Является ли строка "captive_portal_detected" из NetworkInfo getExtraInfo() надежной индикацией невольного портала?

Я обнаружил, что если я смогу получить доступ к экземпляру 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()

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

Вот пример того, как обнаружить, если пользователь находится в неволе портала: How to check for unrestricted Internet access? (captive portal detection)

+1

Благодарим Вас за подтверждение моих подозрений этого значения. Практически все в управлении конфигурацией стало более сложным с Android M. – pjc