如何判断 iPhone 用户是不是在睡觉?

Posted

技术标签:

【中文标题】如何判断 iPhone 用户是不是在睡觉?【英文标题】:How to determine if the iPhone User is Sleeping?如何判断 iPhone 用户是否在睡觉? 【发布时间】:2015-01-08 10:09:34 【问题描述】:

我想在我的应用中为用户进行睡眠分析。我认为 CoreMotion Framewrok 应该会有所帮助。

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

我已经阅读了 pdf 几个小时,但仍然没有一个明确的算法来解决这个问题。但它确实帮助了我很多。稍后我会更仔细地阅读它。 有没有人想出一个很好的算法来获取运动数据并转换为可读的图形?我不知道从哪里开始阅读该 PDF。任何示例方程式都会对我有很大帮助

以上是关于如何判断 iPhone 用户是不是在睡觉?的主要内容,如果未能解决你的问题,请参考以下文章

我们如何检查iphone是不是处于待机模式?

如何判断 iPhone 应用程序是不是通过后台启动

如何将TCP数据包发送到iPhone而不是ICMP数据包

在会话iphone中存储用户名和密码

如何判断用户使用的是 iPhone 6 还是 6+

Iphone 上的多个 OpenGL ES 视图是不是有高效且标准化的代码?