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

Is the string "captive_portal_detected" from NetworkInfo getExtraInfo() a reliable indication of captive portal?

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

我发现,如果我能得到 Wi-Fi NetworkInfo 的一个实例,我就可以调用 getExtraInfo 并且强制门户的指示将作为字符串出现在其中 "captive_portal_detected" 很奇怪,这是一个字符串而不是布尔值 属性,但这不是我的问题。

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

在文档中它告诉方法 getExtraInfo return 的 return 是较低网络层提供的信息:http://developer.android.com/intl/pt-br/reference/android/net/NetworkInfo.html#getExtraInfo()

因此,如果 getExtraInfo 将 return 如果它位于由网络硬件确定的强制门户中,我建议您避免依赖已确定的硬件。

以下是如何发现用户是否在强制门户中的示例:How to check for unrestricted Internet access? (captive portal detection)