我在开发中使用的是 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/