【发布时间】:2015-09-08 17:02:04
【问题描述】:
我正在编写一个研究应用程序,该应用程序利用通过 UDP 广播数据的特定传感器。有各种商业应用程序使用这种传感器,我们希望能够同时运行我们的应用程序和现有应用程序。
过去(iOS 8 及以下)我们会在后台运行我们的应用程序来记录数据,并在前台运行不同的应用程序。不幸的是,似乎只有一个应用程序能够绑定到传入的 UDP 数据(这是有道理的),但是随着即将到来的“并排”应用程序功能,我想知道是否有任何解决方案可以在应用程序之间共享数据。
我唯一能想到的就是让我们的应用程序以某种方式捕获数据并将其重新广播到其他应用程序,但我不知道这在 iOS 中是否可行,即使你是这样将确定“谁”锁定了 UDP 流。
位于https://developer.apple.com/library/prerelease/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/index.html#//apple_ref/doc/uid/TP40015145 的 Apple 文档似乎没有提供太多信息。
【问题讨论】:
-
当应用程序处于后台时,您没有太多控制权,并且在一段时间后操作系统可以将其杀死以获取资源。您需要手动唤醒它以捕获和重新广播,但只有使用 CLLocationManager 的显着更改方法等解决方法。我什至不确定您的应用程序是否包含移动。说到后台,iOS 就这么受限制了……
-
您是否已经使用 setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &opt, sizeof(opt)) 绑定了 UDP 地址以使其在 iOS8 上工作?
标签: ios udp multitasking ios9 split-screen-multitasking