如何在iOS的背景中保存加速度计数据



我正在开发一个活动识别/跟踪应用程序,该应用程序为用户提供统计信息和一天的时间表。我目前有一个用于iPhone 5s及以上的工作版本,该版本使用M7和M8 Motion Processor在过去一天或时间段查询活动。

我现在正在尝试开发一个由iPhone 5和5C等旧手机支持的版本(没有M7/M8 Motion Coolecersor)。我的想法是在一段时间内保存加速度计读数,并将其发送到服务器进行分类,但是我无法让该应用程序在后台存活时间超过几分钟,以便检测和保存这些读数。

我已经使用了Cllocation更新来试图将应用程序保持在后台,但是就像我们的新手机版本一样,它仅在每个位置更新中唤醒大约10秒钟,而不是使其在后台连续运行。

我也知道可以使用的技巧/骇客,例如注册音频或VoIP背景模式,但这只会使我们的应用程序被Apple的评论系统拒绝,如果这些模式不用于用户面向用户功能。

堆栈溢出上的其他答案不可能说是完全不可能的,要说使用位置更新时很容易 - 知道我在这里缺少什么吗?

App Store上有应用程序,例如Move和Human,可以在没有M7/M8 Motion Pocersess的iPhone上工作 - 有人知道这些如何工作吗?

如果尚未不允许。

https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/backgroundExecution/backgroundExecution/backgroundExecution.html

唯一可以使用高准确性(例如DesiredAccuracy = kcllocationAccuracybest)在后台启用标准的唯一方法。在大多数情况下,除用户静止不动以外的大多数情况下,高精度将使更新保持不变。您应该有一个很好的商业理由来使用此功能,因此如果不这样做,请提出一项。还请记住,这在电池上大量排出并提前警告您的用户。

最新更新