iOS - 在后台监听应用程序的网络连接变化

标签 ios xamarin connection location wifi

我想可能没有办法用 Apple 喜欢限制他们的开发人员的方式来做到这一点,但我想监听网络连接变化(wifi 连接/断开连接),即使应用程序在后台或关闭。

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

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

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

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

最佳答案

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

There is no supported way to detect WiFi events in the background.

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

所以您可以从 Apple 自己那里获得它。您目前无法使用 iOS 执行此操作。

关于iOS - 在后台监听应用程序的网络连接变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35139847/

相关文章:

asp.net - Linux 或 OS X 中的 Web API 2.1

ios - 非 ARC 到 ARC : Pointer to a pointer to an object (**)

ios - 复制 Instagram 的 uitabbar 通知 View

c# - 在 Xamarin 中使用 Azure AD 的跨应用 SSO

ios - 您可以在 Xcode 中引用 Xamarin 的输出 (lib) 吗?

postgresql - 具有 10000 个并发连接的 pgpool num_init_children

ios - Swift - 用户位置问题

ios - 获取 UICollectionView 部分的框架

java - java聊天Socket连接数

c# - TcpClient 的创建是否有很多开销?