首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在watchOS 2中屏幕关闭时无法获取加速计和心率数据

在watchOS 2中屏幕关闭时无法获取加速计和心率数据
EN

Stack Overflow用户
提问于 2015-12-22 10:51:35
回答 4查看 1.3K关注 0票数 4

我正在使用CMMotionManager和HKWorkoutSession开发苹果手表应用程序,以获取加速计和心率数据。该应用程序在短时间内(70秒)运行良好,但当屏幕关闭时,心率和加速计数据都会停止。

我的问题是如何从加速计和心率传感器获得5分钟的数据?

EN

回答 4

Stack Overflow用户

发布于 2015-12-23 05:11:34

要在应用程序转到后台时花费更多时间,您可以使用performExpiringActivityWithReason。这是在这里描述的https://developer.apple.com/videos/play/wwdc2015/228/?time=345在我的手表上它只需要大约30秒

代码语言:javascript
复制
NSProcessInfo.processInfo().performExpiringActivityWithReason("Reason") {
   expired in
   if !expired {
      let delay: Int64 = 30
      let delayTime = dispatch_time(DISPATCH_TIME_NOW, delay * Int64(NSEC_PER_SEC))
      dispatch_semaphore_wait(semaphore, delayTime)
   } else {
      dispatch_semaphore_signal(semaphore)
   }
}
票数 5
EN

Stack Overflow用户

发布于 2015-12-29 01:03:36

自watchOS 2发布以来,HKWorkoutSession是在手表屏幕关闭时保持应用程序运行的唯一方法。但是,该应用程序处于挂起状态。计时器和任何其他进程的执行都会暂停,直到屏幕重新打开。但是,应用程序的内存分配是保留的。在应用程序暂停期间,该设备的硬件仍在收集数据并将其存储在手表的硬盘上。当屏幕重新打开时,应用程序会从挂起状态中恢复,此时硬件收集的所有数据都会返回给应用程序(假设订阅了相应的侦听器)。

目前还没有办法在屏幕关闭后继续将手表中的心率数据(或任何数据)发送到iPhone。

票数 4
EN

Stack Overflow用户

发布于 2015-12-23 06:24:40

watchOS 2不允许在屏幕关闭时运行应用程序。虽然有一些方法可以让你获得一点额外的时间,比如使用performExpiringActivityWithReason,但没有办法确保你的应用程序运行完整的5分钟。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34407740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档