android - NetworkInfo getExtraInfo() 中的字符串 "captive_portal_detected"是否是强制门户的可靠指示?

标签 android captivenetwork captiveportal

我在开发中使用的是 Samsung 6.0.1。我想知道网络是否是强制门户。最近发生的一些变化使开发人员知道了这些信息,这很好。但似乎没有办法只从 NetworkInfo 检索数据。

我发现,如果我能获得 Wi-Fi NetworkInfo 的实例,我可以调用 getExtraInfo,并且强制门户的指示将以字符串“captive_portal_detected”的形式出现在其中,这很奇怪,这是一个字符串,而不是一个 bool 属性,但这不是我的问题。

这个字符串是在哪个版本的 Android 上开始出现的?这是常规操作系统的一部分还是三星人员为 s7 添加的内容?我可以依靠此字符串作为与 NetworkInfo 关联的接入点实际上是强制门户的指示符吗?我在任何地方都找不到关于此值的文档。

最佳答案

在文档中,它指出 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)

关于android - NetworkInfo getExtraInfo() 中的字符串 "captive_portal_detected"是否是强制门户的可靠指示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37092500/

相关文章:

http - Cloudtrax HTTP 身份验证 API 调试

android - 如何在 Android 上从俘虏中打开默认浏览器

android - 如何备份 Android 数据库 - 启用 WAL

android - proguard 之后 parse.com 不工作

android: 应用内计费 RESULT_SERVICE_UNAVAILABLE

ios - 强制 Wifi 弹出窗口 : Click a link to open Safari

Android 评分栏 : getProgressDrawable doesn't cast to right Class

iphone - 圈养网络 : CNSetSupportedSSIDs usage

linux - Iptables,从 prerouting Captive Portal 中排除单个 ip

android - Android 应用程序内的强制门户