可达性:开启 Wifi 的飞行模式

Reachability: Airplane Mode with Wifi ON

我目前正在使用 Reachability 检测可用连接。当什么都没有或连接良好时,这很有效。但是,如果我的用户在飞机上有自己的 wifi 节点,但没有连接到互联网怎么办?我的用户将处于打开 wifi 的飞行模式,并且可达性变得混乱——它告诉我她已连接但她的连接不足以进行我的 HTTP 调用。

可达性检测到 wifi,但不够精细或细微,无法确定 wifi 是否真的提供互联网访问。当尝试连接到 wifi 但没有正确的凭据被授权时,这也可能发生在咖啡馆或办公室。

是否可以检测 wifi 节点是否在请求凭据?我是否需要进行 HTTP 调用来检查真正的连接?有没有更聪明的方法来解决这个问题?

据我所知,您将需要做一些工作才能做到这一点。仅供参考,当 WiFi 和蜂窝调制解调器的接口打开时,接口重新联机时会进行整个握手操作。接口是否打开、是否打开、是否有IP地址、是否能到达internet地址等都有区别。我知道当我们关闭飞行模式并恢复连接时这更重要,但有时我们会忘记整个 "starting up and acquiring an IP address" 事情。

我会检查每个接口的可达性标志,然后看看您是否可以找到一个地址并通过该接口取回数据。