10

我一直在研究新的 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,内联代码注释】

4

3 回答 3

4

首先是您的问题或关于 M7 的详细信息?

有没有其他人找到一种方便的方法来使用 CMMotionActivityManager 骑自行车也不必重新合并 LocationManager + 加速度计来尝试测试骑自行车吗?

如果您想检查活动是否是骑自行车的类型,会产生很多混乱?因为它仅取决于加速度计

加速度计包含微观晶体结构,这些结构会受到加速力的压力,从而产生电压。从该电压中它可以解析结果..所以我知道它只是对你的速度进行分类,并给你它跑步或行走的结果汽车所以如果你想骑自行车一段时间非常快非常慢或中等所以可能会在一段时间内导致步行或跑步或者可能是汽车所以m7无法澄清它是汽车还是骑自行车或跑步因为有骑自行车时速度变化不大。

仍然在用于跑步和行走时,它在某些情况下会给出错误的结果......所以你的应用程序也可能会给出错误的信息。

你问的另一件事是

请注意,这也不包括像火车这样的一般交通工具。例如,我每天在火车上通勤一个小时。至少,汽车可以变得更通用,类似于 Moves 使用 Transport 的方式。

因此,Apple 也在开发其他地图功能。据说苹果计划在 iOS 8 中对其地图应用程序进行重大更新,该公司目前正致力于实施公共交通路线和室内地图功能(谷歌已经在 iOS 上拥有)。

http://www.macrumors.com/2013/09/12/apple-working-to-leverage-new-m7-motion-sensing-chip-for-mapping-improvements/(有用链接)

于 2014-04-29T06:41:27.577 回答
2

所以,不确定您是否仍然需要答案,但这里是 iOs8 SDK 的最新版本

@property(readonly, nonatomic) BOOL cycling NS_AVAILABLE(NA, 8_0);
于 2014-09-24T23:45:34.310 回答
1

WWDC 2014的第 612 场会议上,两位出席会议的 Apple 工程师提供了一些信息:在幻灯片中,他们指出:

性能对位置非常敏感

  • 如果设备戴在上臂上效果最佳 最适合回顾性用例

最长延迟

  • 最适合追溯用例

在视频中,他们在音轨上(大约从 11:00 开始)解释说

骑行是新事物,我们在 iOS 8 中引入。骑行非常具有挑战性,而且您需要动态,因此它对位置非常敏感。如果它安装在上臂上,延迟将是相当合理的。如果它在其他任何地方,则需要更长的时间。因此,我绝对不建议使用自行车活动分类作为此时此地的上下文提示。例如,您确实希望以回顾的方式将其用于日记应用程序。

我为 iOS 8 和 9 以及 iPhone 5s 和 6 做了一个简单的测试设置,但没有检测到骑行 - 在超过 1.5 小时的骑行中没有一次。如果新的 iPhone 6S 做得很好,运动活动检测方面的主要缺陷尚不清楚 - Phil Schiller 在 2015 年 9 月宣布了这一点

tl;tr

目前,CoreMotion 中的骑行检测无法正常工作,因为它适用于静止、步行、跑步和汽车!它不会被检测到,只能追溯使用。

于 2015-09-25T13:50:20.520 回答