问题标签 [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.
ios - iOS CMStepCounter & CMMotionActivityManager
我正在使用CMStepCounter
和CMMotionActivityManager
。
我想做的是计算出我全天的总步行时间,并由此计算出我的平均速度。
但是,查看 中的数据CMMotionActivityManager
,很明显,一天中的许多步骤实际上是在“未知活动”期间记录的,而不是步行或跑步。这确实是有道理的,因为您需要执行一些步骤才能让 iOS 知道您正在走路。但是,这些在任何一天的过程中都会累加。
查询CMMotionActivity
,可以得到每个事件的时间戳。然而,虽然我很清楚每一步都必须在 中加上时间戳CMStepCounter
,但我只能看到一种方法来返回两个时间点之间的总步数。如果我可以返回带有时间戳的每个步骤的数组,那将是很棒的,如果可以,如何?
非常感谢。
ios - 如何使用 CMMotionActivityManager 并接收更新?
我想创建一个可以接收和处理运动更新的应用程序,以了解用户是静止的、步行的、跑步的还是在交通工具上。我在参考资料中看到 CMMotionActivityManager 对我有用。
CMMotionActivityManager 类提供对设备存储的运动数据的访问。运动数据反映用户是在步行、跑步、在车辆中还是静止一段时间。
我是应用程序开发的新手,我不明白如何使用开始更新的方法。这样做的方法是- (void)startActivityUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMMotionActivityHandler)handler
。我不明白我应该在处理程序上写什么,因为参考资料说:
handler 检测到当前运动类型发生变化时执行的块。有关此块的参数的信息,请参阅 CMMotionActivityHandler。该属性不能为零。
我的实现是:
我已经导入了 CoreMotion 框架但是 XCode 不识别CMMotionActivityHandler
,我哪里错了?我该如何解决这个问题?
谢谢
ios - CoreMotion 活动跟踪器在后台
是否可以使用 CoreMotion M7 功能在后台跟踪用户活动并根据接收到的事件来启动/停止服务,例如:位置、蓝牙?
我知道逆运算是可能的。例如,在后台使用位置跟踪可以让我使用 CoreMotion API 在后台调用其处理程序。
相反,我想要的是通过根据后台跟踪的活动启动某些事件来优化电池消耗。
ios - 如何在应用程序中使用新的 M7 运动协处理器?
我的问题可能听起来简单或愚蠢,但我只想说清楚。我在应用程序中使用加速度计,我想知道如何使用新的 iPhone 5S M7运动协处理器,目前我正在使用CoreMotion.framework
方法接收加速度计数据- (void)startAccelerometerUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMAccelerometerHandler)handler;
,是否足够?这是一种通用方法(适用于没有 M7 协处理器的设备)?还是我必须做点别的?我在哪里可以阅读和了解如何在应用程序中使用新的 M7 处理器?谢谢。
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"
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 数据,我可以计算(例如跑步)行驶距离、跑步持续时间、速度等。
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,内联代码注释】
core-motion - 如何在应用程序中检测 M7 协处理器传感
我只是想澄清一下。我在我的应用程序中使用加速度计,那么我们是否需要添加任何其他框架或方法来接收 iPhone5s 的 M7 协处理器数据?将CoreMotion 框架与 Method 一起使用就够了吗
从 M7 协处理器接收数据?或者我是否需要包含任何额外的方法或框架来获取 iPhone 5s 中的数据?
提前致谢。
ios - m7/m8 检测运动活动授权是否被拒绝
我以多种方式使用 M7/M8 芯片的 MotionActivity,包括计步。对于计步,我既查询当天的步数,又在实时发生时不断请求步数。
目前,在执行此操作之前,我会先检查[CMStepCounter isStepCountingAvailable]以及本地覆盖标志,然后再继续执行此代码。我假设 isStepCountingAvailable 如果未授予 motionActivity 授权,将返回 FALSE。情况似乎并非如此,它似乎更像是一种硬件检测。我似乎找不到其他方法来检测是否为此授予了授权。
这意味着 startStepCountingUpdatesToQueue 和 queryStepCountStartingFrom 都运行并返回块,但总是返回错误代码。特别是 CMErrorDomain 代码 105。
有没有更好的方法来确定motionActivity 是否未经授权?我有一些后备代码,但我更喜欢事先进行布尔检查,而不是返回块中的错误代码。
ios - 在提示用户之前确定Core Motion Services(例如M7)的授权状态?
WWDC 2014 Session 612 (45:14)重点介绍了如何检查 Core Motion Services 的授权状态:
虽然这可行,但第一次调用-queryPedometerDataFromDate:toDate:withHandler:
将通过系统对话框提示用户进行授权。我宁愿检查状态,而不必出于明显的 UX 原因征求用户的许可。
我正在努力实现的目标是可能的,还是我只是以错误的方式思考 API?