如何在没有用户交互的情况下禁用 wifi 辅助

how to disable wifi assist without user interaction

我有几个 URL 必须通过 wifi 而非移动数据调用(以编程方式)。

由于WIFI ASSIST开启,只要wifi信号弱,数据包就会通过移动数据传输。

我想阻止这种情况发生。

据我研究,没有 API 切换 wifi 辅助 以编程方式打开和关闭

我可以在 Reachability 的帮助下确定用户是否打开了移动数据和 wifi Class 我相信并且我可以提醒用户关闭 wifi 辅助,但这是非常糟糕的用户体验。

所以我决定看看是否可以借助 iOS 移动配置文件.

但我在 Apple 配置文件参考中找不到任何与 wifi-assist 相关的密钥。

所以我想知道,是否可以强制将 wifi 用于某些 URL。

我记得这可以通过 VPN ON DEMAND 实现,我们可以让某些域通过 VPN 访问。

我想知道是否也可以通过配置文件对 wifi 进行同样的操作

欢迎提出任何建议。

没有 public API 允许您 enable/disable "Wi-Fi Assist",即使您找到了方法,您的应用也会被拒绝。

不,您不能通过编程方式启用或禁用 WiFi,并且没有 API 的方法。

正如其他人所提到的,在 iOS 中无法以编程方式操作此设置。这并不是你真正要问的,因为你似乎已经知道答案是 "No"。

你问的是配置文件,所以我假设这些是托管设备。不幸的是,据我所知,没有任何配置文件有效负载会强制受管设备禁用 Wi-Fi Assist。

但是,我认为您的意图与所要求的有所不同。我认为您基本上有一个应用程序可以与只能通过 Wi-Fi 网络(可能是公司 Wi-Fi 网络)访问的资源进行通信。如果应用程序尝试在移动网络上连接到资源,它将无法连接。在某些情况下,当 Wi-Fi 信号较弱时,设备会尝试提供帮助并切换到蜂窝网络,从而导致应用程序出现问题。如果我们能想出一种方法来强制 iOS 在您的应用 运行ning 时不使用 Wi-Fi Assist,那么您的状态就会很好。

如果您可以将此应用程序安装为受管理的应用程序,则可以通过一种方法来确定该应用程序应该只允许 运行 在 Wi-Fi 连接上。将网络使用规则 AllowCellularData 设置为 false 应该可以做到这一点(有关详细信息,请参阅 this)。对于此解决方案,我不确定的是,当 Wi-Fi Assist 打开并处于活动状态时,这是否只会导致连接失败,或者它是否使 iOS 更愿意在应用程序时不使用 Wi-Fi Assist是 运行ning,因为它无法通过蜂窝网络连接。所以我认为你可以告诉应用程序只通过 WiFi 连接,但它并不能真正为你的用户体验问题提供更好的解决方案。唯一认为它真正让你买账的是你的应用程序连接在连接到蜂窝网络时永远不会尝试连接。但是,如果您将应用程序包 ID 的此值更改为 false,则有可能会在您的应用程序 运行ning 时阻止 Wi-Fi Assist 启用。我无法访问 MDM 来试用它,但您可以测试并查看。

最终,鉴于这可能是公司设备的情况,我认为您将不得不通过用户培训来解决这个问题。好消息是这是一次性步骤。当然,当 Wi-Fi 信号弱但手机信号强时,用户可能会出现网络性能轻微下降的情况。如果这些是企业应用程序主要只能在公司的 Wi-Fi 网络上运行的企业设备,这就无关紧要了。

另一种解决方案是您提到的,基本上是使用按需 VPN 来提供与内部资源的连接。这是额外的基础设施工作,你已经提到了它,所以我不确定它是否是一个选项。

显然,另一种解决方案是通过防火墙公开网络资源,这样您就可以通过蜂窝网络访问它。我怀疑由于安全限制,这是不可能的。

不幸的是,这个 space 中没有很多好的选项。但是,希望有一些方法可以做到这一点,因为 Sonos 似乎已经做了一些事情来 允许他们的应用在流式传输到本地网络资源时避免切换到 WiFi Assist:https://sonos.custhelp.com/app/answers/detail/a_id/4257/~/wi-fi-assist-and-sonos

我想知道您是否可以让您的应用程序打开到固定本地网络资源的流式音频连接,这会导致它使用 Wi-Fi。这是一个非常疯狂的 hack,但是如果比特率足够低的音频文件流,它可能会做你需要的,同时不会消耗太多的网络吞吐量。

根据 Apple 的 notes on Wi-Fi Assist

  • 如果您使用数据,Wi-Fi 助手不会自动切换到蜂窝网络 漫游。
  • Wi-Fi 助手仅在您有应用 运行ning 时可用 前台并且不激活后台下载 内容。
  • Wi-Fi 助手无法通过 某些第三方应用激活 流式传输音频或视频,或下载附件,如电子邮件 应用程序,因为它们可能会使用大量数据。

当然,您可以考虑的另一种可能的解决方案是改善 Wi-Fi 覆盖范围,使信号不会太差而需要 Wi-Fi Assist。我知道这可能不可行,但想把它放在那里。

祝你好运!