CMMotionActivityManager忽略循环

时间:2014-04-22 21:31:16

标签: ios core-motion apple-m7

我一直在研究新的M7芯片CMMotionActivityManager,以确定设备的用户是在走路,跑步,在车里等等(见Apple Documentation) 。对于尝试仅使用LocationManager和加速度计数据来确定此前一步,这似乎是一个很大的进步。

我注意到CMMotionActivityManager没有循环活动,这是令人失望的,而且几乎是一个完全用作新活动经理的交易破坏者。有没有其他人找到一种方便的方法来使用CMMotionActivityManager骑自行车而不必重新组合CMLocationManager +加速计只是为了尝试骑自行车测试?

请注意,这也不包括火车等物品的一般运输选项。例如,我每天在火车上上班一小时。汽车可以至少更加通用,类似于Move使用Transport的方式。

CMMotionActivity仅包含以下定义的动作类型:

  • 固定
  • 步行
  • 运行
  • 汽车
  • 未知

Apple代码中的有用说明,不一定能解决问题,但有帮助:

  

CMMotionActivity

     

根据设备的动作估算用户的活动。

     

活动作为一组属性公开,属性不公开   相互排斥。

     

例如,如果您停在停车标志处停车状态可能会   看起来像:       固定=是,步行=否,运行=否,汽车=是

     

行驶的车辆,静止=否,行走=否,行驶=否,   汽车=是

     

或者设备可能处于运动中但不能行走或在车辆中。        静止=否,行走=否,运行=否,汽车=否。请注意,在这种情况下,所有属性都是NO。

[直接来源:Apple iOS Framework,CoreMotion / CMMotionActivity.h @interface CMMotionActivity,内联代码注释]

3 个答案:

答案 0 :(得分:4)

首先,你的问题或关于M7的详细信息?

  

是否有其他人找到了使用CMMotionActivityManager的便捷方法   骑自行车也无需重新注册LocationManager +   加速度计只是为了尝试测试骑行?

如果你想检查活动是否是循环类型,那么它会产生很多混乱因为它只是依赖于加速度计

加速度计包含微观晶体结构,受到加速力的压力,导致产生电压。从该电压可以解析结果..所以我所知道的是它只是将你的速度分类并给你的结果跑步或汽车,所以如果你想骑自行车一段时间很快非常慢或中等所以可能会有一段时间导致步行或跑步或可能是auotomotive所以m7无法澄清,如果它的汽车或骑自行车或跑步因为骑行时没有太大的速度差异。

在使用跑步和走路的时候,在某些情况下会产生错误的结果..所以你的应用也有可能提供错误的信息。

你问的另一件事是

  

注意,这也不包括事物的一般传输选项   像火车一样。例如,我每天在火车上上班一小时。   汽车可以至少更加通用,类似于Moves   使用Transport。

所以Apple也在研究其他地图功能。据说Apple计划在iOS 8中对其地图应用程序进行重大更新,该公司目前正致力于实施公共交通方向和室内地图功能(Google已经在iOS上使用)。

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

答案 1 :(得分:2)

所以,不确定你是否还需要答案,但这里是iOs8 SDK的最新消息

@property(readonly, nonatomic) BOOL cycling NS_AVAILABLE(NA, 8_0);

答案 2 :(得分:1)

session 612 at WWDC 2014中,两名出席的Apple工程师提供了一些信息:In the slides他们说:

  

效果对位置非常敏感

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

最长潜伏期

     
      
  • 最适合回顾用例
  •   

In the video他们在音频轨道上解释(从大约11:00开始)

  

Cycling是新的,我们在iOS 8中引入了一些东西。   骑自行车是非常具有挑战性的,你需要动力学等等   它会对位置非常敏感。   如果它安装在上臂上,延迟将是公平的   合理。   如果它在其他任何地方,它将花费更长的时间。所以我绝对不会建议使用循环活动分类作为此时和现在的上下文的提示。例如,对于日记应用,您可能会以追溯的方式使用它。

我为iOS 8和9以及iPhone 5s和6做了一个简单的测试设置,没有检测到骑行 - 在1.5小时的骑行中没有一次。如果新的iPhone 6S能够做到这一点,那么运动活动检测的主要缺陷还不清楚 - Phil Schiller announced it将于2015年9月发布。

<强> TL; TR

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