【问题标题】:iOS - Listen for network connection changes with app in backgroundiOS - 在后台使用应用程序监听网络连接变化
【发布时间】:2016-02-01 20:37:55
【问题描述】:

我认为 Apple 喜欢限制其开发人员的方式可能无法做到这一点,但我想即使在应用程序处于后台或关闭。

我的应用程序(适用于 iOS 和 Android)允许用户使用地理围栏来跟踪他们的位置,以便在他们离开或进入家时触发某些事件。我可以在 iOS 中使用CLLocationManagerCLCircularRegion 做到这一点。这一切都很好,但我想给用户一个额外的选项来跟踪他们的 wifi 连接以确定何时触发离开和进入事件。这样,偏执的用户(比如我)可以在进出家时触发事件,而无需位置服务。

我想做的是让应用程序在他们的设备连接或断开无线网络时触发一个事件。当事件发生时,我想从该网络获取信息,例如无线接入点的 MAC,以便我可以可靠地确定他们是否连接到他们的家庭网络,以便我可以根据什么来确定他们是否在家他们设置为家庭 wifi。

我相当肯定你可以在 Android 上做到这一点,但我不太确定 iOS。我发现的所有相关内容都需要应用程序主动运行。每当 wifi 连接发生变化时,即使应用程序已关闭或在后台,该事件也必须触发。此应用程序是用 Xamarin (C#) 编写的,但可以接受 Objective-C 代码。

有没有办法在 iOS 上做到这一点?

【问题讨论】:

    标签: ios xamarin connection location wifi


    【解决方案1】:

    监听 WiFi 连接/断开事件可以在 Android 上完成,但在 iOS 上不能完成,这让我感到非常困扰。因此,我向 Apple 发送了开发者支持请求。这是他们回应的一部分:

    不支持在后台检测 WiFi 事件的方法。

    他们继续告诉我,使用区域监控是可行的方法,等等等等。不是一个可接受的解决方案,因为整个想法是消除启用定位服务的需要,但是哦。

    因此,您可以从 Apple 自己那里获得它。您目前无法在 iOS 上执行此操作。

    【讨论】:

      【解决方案2】:

      不,很遗憾,Apple 目前不支持触发和监听连接更改。

      如在Table 3-1 中的their official documentation 中所见,您可以看到允许以long-running background task 运行的内容,这就是您想要的。

      【讨论】:

      • 我在链接页面上找不到您在此处描述的任何信息。您能否检查您的链接并将其调整为您在评论中注意到的文档?
      【解决方案3】:

      也许this medium-post 可能会有所帮助:Sauvik Dolui 描述了如何生成基于 swift 的网络连接侦听器。

      【讨论】:

      • 为什么要在这里投反对票?评论,如果它不起作用会很好。资料有什么问题,如何实现自己的WiFi-Connection Event-Listener?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-21
      • 2021-08-03
      • 2019-02-23
      • 2014-10-29
      • 1970-01-01
      相关资源
      最近更新 更多