问题标签 [apple-m7]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1043 浏览

ios - iOS CMStepCounter & CMMotionActivityManager

我正在使用CMStepCounterCMMotionActivityManager

我想做的是计算出我全天的总步行时间,并由此计算出我的平均速度。

但是,查看 中的数据CMMotionActivityManager,很明显,一天中的许多步骤实际上是在“未知活动”期间记录的,而不是步行或跑步。这确实是有道理的,因为您需要执行一些步骤才能让 iOS 知道您正在走路。但是,这些在任何一天的过程中都会累加。

查询CMMotionActivity,可以得到每个事件的时间戳。然而,虽然我很清楚每一步都必须在 中加上时间戳CMStepCounter,但我只能看到一种方法来返回两个时间点之间的总步数。如果我可以返回带有时间戳的每个步骤的数组,那将是很棒的,如果可以,如何?

非常感谢。

0 投票
4 回答
12456 浏览

ios - 如何使用 CMMotionActivityManager 并接收更新?

我想创建一个可以接收和处理运动更新的应用程序,以了解用户是静止的、步行的、跑步的还是在交通工具上。我在参考资料中看到 CMMotionActivityManager 对我有用。

CMMotionActivityManager 类提供对设备存储的运动数据的访问。运动数据反映用户是在步行、跑步、在车辆中还是静止一段时间。

我是应用程序开发的新手,我不明白如何使用开始更新的方法。这样做的方法是- (void)startActivityUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMMotionActivityHandler)handler。我不明白我应该在处理程序上写什么,因为参考资料说:

handler 检测到当前运动类型发生变化时执行的块。有关此块的参数的信息,请参阅 CMMotionActivityHandler。该属性不能为零。

我的实现是:

我已经导入了 CoreMotion 框架但是 XCode 不识别CMMotionActivityHandler,我哪里错了?我该如何解决这个问题?

谢谢

0 投票
0 回答
448 浏览

ios - CoreMotion 活动跟踪器在后台

是否可以使用 CoreMotion M7 功能在后台跟踪用户活动并根据接收到的事件来启动/停止服务,例如:位置、蓝牙?

我知道逆运算是可能的。例如,在后台使用位置跟踪可以让我使用 CoreMotion API 在后台调用其处理程序。

相反,我想要的是通过根据后台跟踪的活动启动某些事件来优化电池消耗。

0 投票
2 回答
1152 浏览

ios - 如何在应用程序中使用新的 M7 运动协处理器?

我的问题可能听起来简单或愚蠢,但我只想说清楚。我在应用程序中使用加速度计,我想知道如何使用新的 iPhone 5S M7运动协处理器,目前我正在使用CoreMotion.framework方法接收加速度计数据- (void)startAccelerometerUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMAccelerometerHandler)handler;,是否足够?这是一种通用方法(适用于没有 M7 协处理器的设备)?还是我必须做点别的?我在哪里可以阅读和了解如何在应用程序中使用新的 M7 处理器?谢谢。

0 投票
5 回答
21244 浏览

ios - Detecting when someone begins walking using Core Motion and CMAccelerometer Data

I'm trying to detect three actions: when a user begins walking, jogging, or running. I then want to know when the stop. I've been successful in detecting when someone is walking, jogging, or running with the following code:

The problem I run into is two-fold:

1) update is called multiple times every time there's a motion, probably because it checks so frequently that when the user begins walking (i.e. _acceleration.x >= .1000) it is still >= .1000 when it calls update again.

Example Log:

2) I'm having difficulty figuring out how to detect when the user stopped. Does anybody have advice on how to implement "Stop Detection"

0 投票
1 回答
1688 浏览

ios - 如何使用 M7 协处理器计算 iOS 设备的行驶距离、速度、持续时间?

如何使用 M7 协处理器计算 iOS 设备的行驶距离、速度、持续时间?

我参考了苹果的 CMMotionActivityManager 文档 https://developer.apple.com/library/ios/documentation/CoreMotion/Reference/CMMotionActivityManager_class/Reference/Reference.html#//apple_ref/doc/uid/TP40013503

它提供对设备存储的运动数据的访问,我们得到的数据是这样的:

CMMotionActivity@14074.912282,<startDate,20140303 10:09:40

+0000,confidence,1,unknown,0,stationary,0,walking,1,running,0,automotive,0>

CMMotionActivity@14077.466468,<startDate,20140303 10:09:43

+0000,confidence,0,unknown,0,stationary,0,walking,0,running,1,automotive,0>

CMMotionActivity @ 14080.024116,<startDate,20140303 10:09:46

+0000,confidence,1,unknown,0,stationary,0,walking,0,running,1,automotive,0>

CMMotionActivity@14082.582084,<startDate,20140303 10:09:48

+0000,confidence,2,unknown,0,stationary,0,walking,0,running,1,automotive,0>

因此,不使用 GPS /仅依靠 M7 数据,我可以计算(例如跑步)行驶距离、跑步持续时间、速度等。

0 投票
3 回答
3490 浏览

ios - CMMotionActivityManager 忽略循环

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

0 投票
1 回答
159 浏览

core-motion - 如何在应用程序中检测 M7 协处理器传感

我只是想澄清一下。我在我的应用程序中使用加速度计,那么我们是否需要添加任何其他框架或方法来接收 iPhone5s 的 M7 协处理器数据?将CoreMotion 框架与 Method 一起使用就够了吗

从 M7 协处理器接收数据?或者我是否需要包含任何额外的方法或框架来获取 iPhone 5s 中的数据?

提前致谢。

0 投票
1 回答
869 浏览

ios - m7/m8 检测运动活动授权是否被拒绝

我以多种方式使用 M7/M8 芯片的 MotionActivity,包括计步。对于计步,我既查询当天的步数,又在实时发生时不断请求步数。

目前,在执行此操作之前,我会先检查[CMStepCounter isStepCountingAvailable]以及本地覆盖标志,然后再继续执行此代码。我假设 isStepCountingAvailable 如果未授予 motionActivity 授权,将返回 FALSE。情况似乎并非如此,它似乎更像是一种硬件检测。我似乎找不到其他方法来检测是否为此授予了授权。

这意味着 startStepCountingUpdatesToQueue 和 queryStepCountStartingFrom 都运行并返回块,但总是返回错误代码。特别是 CMErrorDomain 代码 105。

有没有更好的方法来确定motionActivity 是否未经授权?我有一些后备代码,但我更喜欢事先进行布尔检查,而不是返回块中的错误代码。

0 投票
2 回答
2923 浏览

ios - 在提示用户之前确定Core Motion Services(例如M7)的授权状态?

WWDC 2014 Session 612 (45:14)重点介绍了如何检查 Core Motion Services 的授权状态:

虽然这可行,但第一次调用-queryPedometerDataFromDate:toDate:withHandler:将通过系统对话框提示用户进行授权。我宁愿检查状态,而不必出于明显的 UX 原因征求用户的许可。

我正在努力实现的目标是可能的,还是我只是以错误的方式思考 API?