我想在我的应用中为用户进行 sleep 分析。我认为 CoreMotion Framewrok 应该会有所帮助。
func queryActivityStartingFromDate(start: NSDate!, toDate end: NSDate!, toQueue queue: NSOperationQueue!, withHandler handler: CMMotionActivityQueryHandler!)
所以我使用上面的 API 来获取过去 7 天的用户运动数据。现在我得到了一个 CMMotionActivity 对象的列表。
而我的问题是如何从这数千个CMMotionActivity对象中计算出用户的 sleep 状态。有什么算法吗?或任何其他方式来实现 sleep 分析。
非常感谢!
Best Answer-推荐答案 strong>
CMMotionActivity 包括一个 stationary 属性,该属性可能对您的情况有用。
寻找连续的不活动时间段,与位置、时区和 CMDeviceMotion 数据配对,您应该开始检测您拥有的数据集中的模式。使用统计变化来定义阈值并微调您的结果。
请注意,您会做出可能不正确的假设。例如,有些人睡在移动的车辆中。
我发现这个 pdf 文件很有用 ftp://ftp.tik.ee.ethz.ch/pub/students/2010-HS/SA-2010-26.pdf
关于ios - 如何判断 iPhone 用户是否在 sleep ?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/27837496/
|