问题标签 [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 投票
1 回答
683 浏览

ios - CMMotionManager:设备校准在真实设备上不起作用

我对 CMMotionManager 有一个奇怪的行为。我尝试校准设备的位置以使我的应用程序支持多个设备方向。

当我在真实设备(不在模拟器中)上调试我的应用程序时,一切正常。当我在没有调试的情况下运行同一个应用程序时,校准不起作用。

这是我的代码:

0 投票
4 回答
5344 浏览

ios - CMMotionactivitymanager授权状态

我想获得CMMotionActivityManager. 对于日历和位置等其他服务,我们在 API 中有一些属性,可以为我们提供这些类的用户授权状态。我怎样才能获得CMMotionActivityManager课程的授权状态?

0 投票
2 回答
13072 浏览

ios - 运动管理器在 Swift 中不起作用

我尝试在 Swift 中使用运动管理器,但我的更新块内的日志永远不会打印。

我的 Objective-C 实现工作正常。有谁知道为什么我的更新块没有被调用?

0 投票
0 回答
925 浏览

ios - 从 CMMotionManager 接收设备运动更新的延迟

我有一个应用程序,它在加载时会定期获取设备运动更新(每秒 20 次)并使用它们在屏幕上显示内容。使用旧(已弃用)UIAccelerometer代码可以正常工作。

我已经将它移植到使用 Core Motion 并且CMMotionManager但我遇到的问题是每次(除了第一次)加载这些视图中的一个时,在第一秒左右只收到一个或两个更新,然后它们开始按预期接收(每秒 20 个)。

视图中的相关代码:

我已经添加了一些NSLog语句,并且可以确认视图加载后立即请求运动更新,并且处理程序仅接收如上所述的更新。

我有什么遗漏可以使 CoreMotion 版本的行为与旧版本相同,即没有延迟吗?

0 投票
1 回答
519 浏览

sprite-kit - 使用 CoreMotion 移动 SKSpriteNode

我有一个代表用户的 SKSpriteNode,我希望这个节点随着用户的移动而移动,如果用户走路,那么节点会朝同一个方向移动。

起始位置是视图的中心,我认为可以使用 CMMotionManager (iOS 7) 中的rotationRate、userAcceleration 和重力使其工作,但我不知道我是否错了,或者我应该对这些值执行哪些操作.

我很感激有人可以帮助我。

谢谢。

0 投票
1 回答
1588 浏览

ios - CMMotionActivityManager callback when user not allow the permisson

I am using the following code from the Privacy Prompts project to get the Motion Permission.

What if user not allow the motion permission. Do i get some callback? If not is there an alternative way to get the this. I want the callback when user selects Allow or Don't Allow

0 投票
2 回答
311 浏览

ios - Objective C / iOS - 从设备运动音高值更新数组

网站和 Obj C 的新手。尝试从 Device Motion(工作)中获取音高值,将最近的 60 个值(不工作)放入一个数组中,然后选择数组中的最大值。对于来自设备的每个新音高值,新的音高值将添加到数组中,并删除第 61 个值。当我挂上手机并跑步时,我得到了 pitch 和 maxPitch 的日志值;但是,我没有得到 60 个值的数组,所以我不相信它工作正常。任何帮助是极大的赞赏。

我相信问题可能出在这条线上:if (pitchArray.count <= 60) {

[pitchArray addObject:[NSString stringWithFormat:@"%.2gº", motion.attitude.pitch * kRadToDeg]];

这是完整的代码:

0 投票
3 回答
8265 浏览

ios - 使用CMDeviceMotion获得绝对旋转?

我正在使用 Sprite Kit 构建一个简单的游戏,屏幕不旋转,但我想知道用户为游戏机制而拿着手机的角度。

使用加速度计 (x, y) 可以轻松检索我想要获得的值,但我发现这不可靠,因此我尝试使用CMDeviceMotion. 我可以获得等价物,data.acceleration.y但我不知道如何获得等价物data.acceleration.x

如何计算等效于data.acceleration.xusing CMDeviceMotion

0 投票
1 回答
208 浏览

ios - 使用 AccelerometerData 和 gyroData 获取手机绝对旋转的区别?

我正在使用手机加速度计获得手机绝对旋转(减去 z 轴),如下所示:

我知道它也可以使用motionManager.startGyroUpdates()这个答案中的说明来获得: 使用 CMDeviceMotion 获得绝对旋转?

我想知道使用加速度计和陀螺仪来实现这个目标有什么区别。它是不是比另一种更快、更精确、资源消耗更少?

0 投票
1 回答
883 浏览

ios - 地图设备倾斜到物理世界重力?

我正在构建一个“大理石”迷宫游戏以学习 spritekit 基础知识。

我想将游戏的重力映射到设备的倾斜度。我一直在试图弄清楚如何做到这一点,但我只能成功地映射 y 轴:

我可以映射使球“向上”或“向下”(相对于纵向模式)的 Y 轴,但是我不明白如何映射 X 轴(从设备侧面拉动)。

例如,当将设备平放在桌子上时 (x, y) 应该是 (0,0),当把它放在桌面屏幕向下时它也应该是 (0,0) 但是姿态.roll 返回 -179。此外,如果我保持设备垂直(在纵向模式下)并打开我的脚保持设备静止,重力应该保持(x:0,y:1)但是 x 继续变化,因为它基于姿态.roll

如何才能做到这一点?