草庐IT

CoreMotion

全部标签

iphone - 为什么这个 CMDeviceMotionHandler 从未被 CoreMotion 调用过?

我在我的项目中包含了CoreMotion框架,并在我的ViewController的header中导入了CoreMotion框架:#import然后在-viewDidLoad中我有这个简单的测试代码,我在装有iOS4.3的iPhone4上运行:-(void)viewDidLoad{[superviewDidLoad];CMMotionManager*motionManager=[[CMMotionManageralloc]init];[motionManagersetDeviceMotionUpdateInterval:0.1];CMDeviceMotionHandlermotionH

ios - CoreMotion 在 iOS 10 上延迟传送数据

我最近做了一个AR应用。它使用CoreMotionattitude.rotationMatrix和重力来确定相机方向。运动更新位于单独的OperationQueue中,其qualityOfService=.userInteractive。在mainQueue上调用UI更新。这是在iOS9.3.5上运行的应用程序:https://youtu.be/ecvXa3jXBrY这里就像应用程序在iOS10.0.1上运行一样,代码完全相同:https://youtu.be/bEKpBWSGawQ我已经在iPhone5S和iPad4上对其进行了测试。该应用程序在iOS10上正常运行的概率为二十分之一

ios - 在 CoreMotion 中从地面获取引用 CMAttitude(aTtitude,而不是 aLtitude)

我想获得一个基于地平面的引用CMAttitude,例如,绘制地平线。实际上,我可以通过随时获取引用姿态来旋转我的View,并使用multiplyByInverseOfAttitude获取与之前姿态相比的手机旋转。没关系。但我无法找到如何在开始时将其落地。我主要使用纵向模式,IOS5,并使用CMAttitudeReferenceFrameXTrueNorthZVertical(因为我也使用CoreLocation)。我查看了气泡水平仪或茶壶样本(使用加速器),但没有找到解决我的设备运动态度问题的简单答案或样本。我可能遗漏了什么。谢谢。 最佳答案

swift - CoreMotion授权问题

我目前正在开发一个应用程序,它将使用三个库的组合:CoreLocation、CoreMotion和Healthkit。我的问题是,当我初始化CoreLocation和Healthkit时,我得到允许授权的对话框。但是,使用CoreMotion,我没有收到任何请求授权的对话框,只有错误“CMErrorDomain=105”(即访问被拒绝)。“Motion&Fitness”的隐私设置不显示该应用程序的任何条目。该应用程序的隐私设置也不会显示与Motion相关的任何条目。我已多次删除我的测试设备以消除任何预先存在的设置。使用Swift2.1为ios9.2构建的应用程序。在5S和6S+上测试,

ios - iPhone 5 上的 SceneKit 和 CoreMotion "lagging"但在 iPhone 6 上正常

我正在使用SceneKit进行测试,所以我决定制作一个虚拟现实测试应用程序。我将从设备运动中获取数据,然后根据数据更改摄像机角度。我在iPhone6上进行测试,所以没问题。当我在iPhone5和friend的iPhone5S上运行它时,事情变得很奇怪,相机将需要一些延迟才能旋转,这与iPhone6非常不同,后者是即时的。Xcode上的FPS在两台设备上都保持在60FPS左右,我添加了一些时间测试,两台设备上的运动数据也在60Hz左右。我迷路了。代码的基础是这个项目:https://github.com/stevenjs/VR-iOS-Experiment如果可能的话,我想要一些关于如何

ios - CoreMotion 在后台更新

借助最新iOS设备中的M7芯片,当用户使用CMMotionActivityManager从静止状态变为运行、步行等状态时,可以通过编程方式获得通知。Stava和Runkeeper都用它来auto-pauseGPSpolling(关闭GPS天线)当它检测到用户没有通过M7移动时,然后在他们再次移动时重新启用GPS更新。它能够在应用程序处于后台状态时执行此操作,这是这里的关键。我在复制此功能时遇到的问题是,如果我在我的应用程序处于后台时关闭GPS更新,我将停止接收事件更新,并且无法再检测到用户何时通过M7再次移动以打开GPS回来。如果我让GPS始终处于运行状态,我将在应用处于后台的整个过程

ios - CoreMotion 在后台更新

借助最新iOS设备中的M7芯片,当用户使用CMMotionActivityManager从静止状态变为运行、步行等状态时,可以通过编程方式获得通知。Stava和Runkeeper都用它来auto-pauseGPSpolling(关闭GPS天线)当它检测到用户没有通过M7移动时,然后在他们再次移动时重新启用GPS更新。它能够在应用程序处于后台状态时执行此操作,这是这里的关键。我在复制此功能时遇到的问题是,如果我在我的应用程序处于后台时关闭GPS更新,我将停止接收事件更新,并且无法再检测到用户何时通过M7再次移动以打开GPS回来。如果我让GPS始终处于运行状态,我将在应用处于后台的整个过程

ios - CoreMotion 的主线程检查器警告,仅出现在 2018 款 iPhone 上

以下是该问题的极其简化的版本:importUIKitimportCoreMotionclassViewController:UIViewController{privateletmanager=CMMotionManager()privateletinterval=0.01overridefuncviewWillAppear(_animated:Bool){super.viewWillAppear(animated)startUpdates()}privatefuncstartUpdates(){letqueue=OperationQueue()queue.name="com.demo

ios - 使用 CoreMotion 框架在后台接收加速度计更新

我正在使用以下代码获取加速度计数据(使用CoreMotion框架):CMMotionManager*motionManager=[[CMMotionManageralloc]init];motionManager.accelerometerUpdateInterval=1.0/60.0;[motionManagerstartAccelerometerUpdatesToQueue:[NSOperationQueuecurrentQueue]withHandler:^(CMAccelerometerData*accelerometerData,NSError*error){NSLog(@"

iphone - CoreMotion - 磁场始终为 0

我正在尝试使用磁力计:[myMotionMngrstartDeviceMotionUpdatesToQueue:[NSOperationQueuecurrentQueue]withHandler:^(CMDeviceMotion*motion,NSError*error){printf("%f\t%f\t%f\n",motion.magneticField.field.x,motion.magneticField.field.y,motion.magneticField.field.z);CMMagneticFieldCalibrationAccuracyacc=motion.magn