0

我有一个用 Xamarin Forms 开发的应用程序,它以编程方式连接到物联网设备公开的 WIFI(没有互联网访问权限)。

这是我用来连接 wifi 网络的代码:

NEHotspotConfiguration configuration = new NEHotspotConfiguration("ssid");
Device.BeginInvokeOnMainThread(() =>
{
    NEHotspotConfigurationManager.SharedManager.ApplyConfiguration(configuration, (NSError error) =>
    {
        if (error != null)
        {
            if (error.LocalizedDescription == "already associated.")
            {
                // connected!
                CommunicateConnected();
            }
            else
            {
                // not connected
                CommunicateNotConnected();
            }
        }
        else
        {
            // connected!
            CommunicateNotConnected();
        }
    });
});

成功建立连接后,应用程序会对IoT 设备的 IP 执行一些 HTTP 调用。
有时会发生 HTTP 调用通过蜂窝数据连接而不是 WIFI 连接(因为加入的网络没有互联网连接?)并且它们失败。(简单地说,我看到 4G 图标仍然可见,而不是代表 WIFI 连接的图标)。在这些情况下,移动连接和 WIFI 连接之间的切换会在几分钟后发生。

有没有办法强制 HTTP 调用通过刚刚加入的网络?

4

1 回答 1

0

您可以为应用程序和服务设置蜂窝数据使用。

前往Settings > Cellular,然后为任何可以使用蜂窝数据的应用(例如地图)或服务(例如 Wi-Fi 助手)打开或关闭蜂窝数据。

如果某个设置关闭,iPhone 将只使用 Wi-Fi 来提供该服务。

笔记:

Wi-Fi 助手默认开启。如果 Wi-Fi 连接不佳,Wi-Fi Assist 会自动切换到蜂窝数据以增强信号。由于当您的 Wi-Fi 连接不佳时您仍通过蜂窝网络连接到互联网,您可能会使用更多的蜂窝数据,这可能会产生额外费用,具体取决于您的数据计划。请参阅 Apple 支持文章关于Wi-Fi 辅助

于 2022-02-08T06:34:02.283 回答