如果手表应用程序进入后台或取消激活,有没有办法获取传感器数据?

时间:2017-11-29 12:38:44

标签: ios swift watchkit

我正在开展手表应用程序扩展,我正在以最大100HZ的频率从所有传感器(加速度计,计步器,陀螺仪,气压计,位置,心率等)收集数据,但我面临着传感器停止给予的问题以下情景中的数据:

  1. 如果我放下手臂,那么传感器会在几秒钟后工作,传感器在我再次抬起手腕之前不会提供数据。
  2. 任何时间点代码执行都会停止,以便我们不会获取数据。
  3. 所以我使用了CMSensorRecorder类,但只有这个类不能满足我们的要求。

    那么让传感器数据独立于WKInterfaceController的激活/去激活状态的方法是什么? 如果应用程序处于活动状态或处于活动状态,我必须获取数据。

2 个答案:

答案 0 :(得分:0)

只有当您的应用运行Workout时,才会在watchOS上执行后台执行超过3分钟的时间。除非您的应用正在运行锻炼,否则您无法在后台获取任何传感器数据。

但是,作为the official App Programming Guide for watchOS states,您不应该在后台运行任何任务,除非您的应用是Workout应用,因此我建议您重新考虑您的应用的工作方式。

答案 1 :(得分:0)

启用位置背景模式并设置CLLocationManager.allowsBackgroundLocationUpdates = true将使您的应用在后台记录传感器数据。