如何确定 iPhone 用户是否在睡觉?

How to determine if the iPhone User is Sleeping?

我想在我的 app.And 中为用户做一个睡眠分析我认为 CoreMotion Framewrok 应该有帮助。

func queryActivityStartingFromDate(start: NSDate!, toDate end: NSDate!, toQueue queue: NSOperationQueue!, withHandler handler: CMMotionActivityQueryHandler!)

所以我使用上面的API来获取最后7个用户运动数据days.And现在我得到了CMMotionActivity对象的列表。 我的问题是如何从这数千个 CMMotionActivity Object.Is 中计算用户睡眠状态有什么算法吗?或者任何其他方式来实现睡眠分析。 非常感谢!

CMMotionActivity 包含一个 stationary 属性,这可能对您的情况有用。

寻找连续的不活动时间,与位置、时区和 CMDeviceMotion 数据配对,您应该开始检测您拥有的数据集中的模式。使用统计变化来定义阈值并微调您的结果。

请注意,您会做出可能不正确的假设。例如,有些人睡在移动的车辆中。

我发现这个 pdf 很有用ftp://ftp.tik.ee.ethz.ch/pub/students/2010-HS/SA-2010-26.pdf