问题标签 [cmmotionmanager]

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 投票
0 回答
323 浏览

ios - cmdevicemotion 停止提供更新

我的代码中有一些奇怪的问题,我无法弄清楚,需要一些帮助。我在我的 AppDelegate 中定义了一个 CMMotionManager。在我的视图控制器中,我定义了一个属性:

然后使用此代码开始更新:

但是,handleDeviceMotion 只被调用了几次,然后它停止更新 deviceMotion 输出。我已将代码更改为推送样式(块代码),但在这种情况下,块不会被执行!块中的测试 NSLog 注释永远不会被执行。该代码如下所示:

下面是 handleDeviceMotion 代码的样子:

使用第一种方法,我看到“测试”打印了几次,然后就停止了。

我认为通过将 motionManager 保留为属性,我不必担心它会被释放,但它似乎正在某个地方被释放(或者你认为还有其他事情发生吗?)。

非常感谢您的帮助。

0 投票
1 回答
2290 浏览

ios - iOS 航位推算

我正在开发一个 iOS 项目,该项目需要我在 GPS 不可用时进行简单的航位推算。我收到了来自各种手机的大量测量数据,其中包括以下内容:

  1. GPS 数据(x、y、z、航向、速度)(如果可用)
  2. 加速度计(用户加速度 x、y、z)
  3. 陀螺仪(旋转x、y、z)

我想计算时间序列中丢失的 GPS 位置。我了解如何根据最后的 GPS 位置和课程值来预测位置,但这给了我很大的错误。我的问题是,如果我将加速度计和陀螺仪数据结合起来,是否可以获得更好的结果。我了解如何整合加速度计值来获取速度信息,但我不确定如何使用陀螺仪数据。任何帮助将不胜感激。

0 投票
1 回答
714 浏览

iphone - 使用 CMMotionManager 和 UIAccelerometer

我将如何进行以下操作:我想捕捉设备在空间中的运动。

我的意思是,有没有办法使用 iOS 框架知道设备在房间的 3 维空间中移动的确切位置?它移动得有多快?

请指导我找到任何好的教程,因为我很难找到任何好的教程。

0 投票
1 回答
1319 浏览

ios - 如何在 iOS 中获取海拔和磁场

我试图在 iOS 中获取海拔值和磁场值。我一直在谷歌上搜索这些主题很长时间,但我找不到任何可以正常工作的东西。

a)当我谈论仰角值时,我想在我向上移动我的手机顶部时获得以度为单位的角度。我附上了一张图片,以使其更容易。我一直在尝试这样,但它不起作用:

。H

.m

b)关于磁场,我想了解影响我手机精度的设备、磁铁、铁等的影响。* 我得到的所有值都不正确(在一种 NSTimer 中):

任何想法如何弄清楚....谢谢

0 投票
1 回答
982 浏览

objective-c - CoreMotion 不会让我滚动、俯仰和偏航

sBefore已从 iOS 中弃用,UIAccelerometer我使用来自和此类的数据来计算俯仰、滚动和偏航。我还必须进行一些过滤,但现在我看到使用库我可以从中获取这些数据并且真的很想使用这些属性,但不知何故我没有这样做。xyzCoreMotionCMAttitude

现在,我所做的是实例化

我可以读取 x、y 和 z,motionManager.accelerometerData.acceleration.<x,y or z>但尝试读取时attitude.<roll,pitch,yaw> 会得到 0。

我每 100 毫秒读取一次由连续计时器触发的方法中的值。

关于我所缺少的任何想法?

0 投票
1 回答
3868 浏览

iphone - 如何在 iphone 处于加速模式或空闲模式时启动和停止 CMMotionManager startAccelerating 和 stopAccelerating?

我正在开发与加速相关的应用程序。我正在使用CMMtionManager对象。但是当我调用startaccelerating方法时,它的工作并连续调用该方法,即使 iphone 在空闲模式下也是如此。如何在 iphone 加速和空闲时停止和开始加速。

请帮助我。

0 投票
4 回答
19812 浏览

ios - 使用 CMMotionManager 测量倾斜角度

假设您将 iphone/ipad 垂直放在您的面前,屏幕朝向您,纵向放置。您将设备倾斜到一侧,使屏幕始终面向您。您如何使用 CMMotionManager 测量静态倾斜角?这似乎是一个简单的问题,应该有一个简单的答案,但我找不到任何不会消失在四元数和旋转矩阵中的方法。

谁能指出我一个可行的例子?

0 投票
3 回答
869 浏览

iphone - CMMotionManager - 仅使用 CMMotionManager 获取航向

我已经设法使用 CLLocationManager 获得指南针航向,但因为我的应用程序已经使用了 CMMotionManager,所以我想只使用 CMMotionManager 来测量航向。

像所有 Apple 模糊文档一样,您必须猜测如何使用他们的 API。

我试图用它来测量航向

问题是这个块只运行了几秒钟然后停止运行。

是否有任何示例说明如何专门使用 CMMotionManager 测量航向?

谢谢。

0 投票
1 回答
929 浏览

ios - 如何以秒为单位确定CMDeviceMotion的年龄

我希望能够在游戏过程中打开和关闭设备动态更新。但是在我关闭它们然后再次返回后,CMMotionManager 的 .deviceMotion 属性会在短时间内返回最后知道的 deviceMotion(大约 0.5 秒,直到它可以计算出新值,我猜)。

所以,我希望能够测试我得到的 CMDeviceMotion 对象的年龄,如果它们超过几秒钟就忽略它们。

计算 CACurrentMediaTime() - deviceMotion.timestamp 似乎给了我准确的结果。但我担心这可能会在未来的设备或 iOS 版本中中断。设备运动时间戳是否保证在未来与 CACurrentMediaTime() 保持可比性?有没有更好的方法来计算 CMDeviceMotion 时间戳的年龄?

来自 Apple 的文档:

CACurrentMediaTime()

通过调用 mach_absolute_time() 并将结果转换为秒数得出的 CFTimeInterval。

deviceMotion.timestamp

时间戳是自手机启动以来的时间量(以秒为单位)。

0 投票
1 回答
386 浏览

ios - 更改 startDeviceMotionUpdatesToQueue 中的帧

我正在尝试使用从 CMMotionManager 及其方法获得的值更改 UIView 的框架 - startDeviceMotionUpdatesToQueue:withHandler

我写了这样的草稿:

但我的观点根本不动。如果我记录我的框架,我可以在每次更新时看到变化......那么为什么我的视图没有在屏幕上移动?