保持 iOS 应用程序处于唤醒状态以监控运动

Posted

技术标签:

【中文标题】保持 iOS 应用程序处于唤醒状态以监控运动【英文标题】:Keep iOS App Awake To Monitor Movement 【发布时间】:2015-09-28 11:49:51 【问题描述】:

我无法让我的 ios 应用程序的主要功能正常工作。我正在尝试创建一个应用程序,使用 CoreMotion 在几个小时内测量运动量。设备唤醒时一切正常,但问题是设备会在一段时间后自动锁定并进入后台状态,因此我的监控移动暂停的方法。

我正在寻找一种可能的解决方案来记录设备在锁定时的移动,这可能是一次让应用保持几个小时的唤醒状态。我研究了过去曾用于此目的的一系列可能解决方案,但发现这些方法现在可能会导致应用程序被 Apple 拒绝。

任何帮助将不胜感激。

【问题讨论】:

您希望您的应用处于唤醒状态吗? 好吧,我希望设备锁定,但仍然运行它的方法几个小时。所以我不确定应用程序是需要唤醒还是只是在前台。 你可以让设备保持唤醒状态,即最终让你的应用程序保持在前台。但是一旦设备被锁定,你就无法运行连续的方法或控制 您可以尝试从 HealthKit 等其他来源获取数据,即使设备被锁定也能正常工作。 用户是否必须先将数据添加到健康应用程序中,然后我才能使用该数据? 【参考方案1】:

对于任何对类似问题感兴趣或陷入困境的人,我想出了我问题的解决方案。我需要使用 iPhone 的运动协处理器,它可以跟踪运动超时并将这些数据存储在设备上。这是 CoreMotion 框架的一部分,无论应用程序在使用时是否打开,都可以查询。还值得一提的是,只有 iPhone 5s 及更新机型才有此硬件,因此旧设备将无法利用此功能。

我希望这可以帮助任何需要它的人。

【讨论】:

感谢您发布问题并跟进。我学到了一些东西! ... 当然,前提是用户拥有 5S 或更高版本。但这已经是两年前的手机了,所以在手机方面还不错。 是的,你是对的,第一个运动协处理器只在 iPhone 5s 中引入。我应该在上面的答案中提到这一点。谢谢你提醒我。

以上是关于保持 iOS 应用程序处于唤醒状态以监控运动的主要内容,如果未能解决你的问题,请参考以下文章

已终止的应用程序未使用 iBeacon 数据包唤醒

当我收到静默推送通知时,iOS 会唤醒我的应用程序吗?(当应用程序未处于运行状态时)

如何在 PhoneRTC 视频通话中保持显示器唤醒?

Cordova 应用程序监控 evothings Estimote/iBeacon,而应用程序处于终止状态 IOS

iOS 应用程序如何在后台无限期地保持 TCP 连接处于活动状态?

如何在后台保持 iphone ios websocket 连接处于活动状态?