我一直在研究新的 M7 芯片CMMotionActivityManager,以确定设备的用户是否正在走路、跑步、在车内等(请参阅Apple 文档)。与仅通过使用加速度计数据来确定先前的数据相比,这似乎是向前迈出的一大步LocationManager。
然而,我注意到它CMMotionActivityManager没有自行车活动,这令人失望,并且几乎是作为新活动经理完全使用的交易破坏者。有没有其他人找到一种方便的方式来CMMotionActivityManager骑自行车,而不必重新合并CMLocationManager+加速度计来尝试测试骑自行车吗?
请注意,这也不包括像火车这样的一般交通工具。例如,我每天在火车上通勤一个小时。至少,汽车可以变得更通用,类似于 Moves 使用 Transport 的方式。
CMMotionActivity仅具有以下定义的运动类型:
- 静止的
- 步行
- 跑步
- 汽车
- 未知
Apple 代码中的有用注释,不一定能解决问题,但很有帮助:
CMMotionActivity
基于设备的运动对用户活动的估计。
活动作为一组属性公开,这些属性不是互斥的。
例如,如果您乘坐的汽车停在停车标志处,则状态可能如下所示:静止 = YES,步行 = NO,跑步 = NO,汽车 = YES
或移动的车辆,静止 = NO,步行 = NO,跑步 = NO,汽车 = YES
或者该设备可能处于运动状态,但不能行走或在车辆中。静止 = NO,步行 = NO,跑步 = NO,汽车 = NO。请注意,在这种情况下,所有属性均为 NO。
【直接来源:Apple iOS Framework,CoreMotion/CMMotionActivity.h @interface CMMotionActivity,内联代码注释】