我看到我可以从设备中检索CMAttitude,从中我可以读取我需要的3个值(俯仰,滚动和偏航).据我了解,这个CMAttitude对象由CoreMotion管理,CoreMotion是一个传感器融合管理器,用于计算罗盘,陀螺仪和加速度计的正确结果(在Android上它是SensorManager类).
所以我的问题是:
那些值(俯仰,滚转和偏航)是相对于磁北和重力吗?
如果以上是正确的,我如何修改它以给我相对于地理北方的结果?
如果设备(例如iPhone 3GS)没有陀螺仪,我是否必须告诉管理员,或者我可以告诉它根据设备的传感器给我设备的态度(acc + gyro + compas OR acc + compas)
我想知道是否有人能指出我在iPhone5S及以上版本中使用M7芯片的正确方向.
我想知道它是否只是在您使用通用核心运动API时自动使用,或者是否有一组特定的API可供使用?
最后我注意到在线阅读一些文章,它保留了一些历史运动数据,任何人都知道如何访问这个或任何人都可以指出我正确的方向?
我正在使用 iOS 核心运动框架来检测设备是向前还是向后倾斜。详情见图片:http : //i.stack.imgur.com/2Ojw5.jpg
使用音调值 a 可以检测到这种运动,但我无法区分向前和向后。
更多细节:
我尝试检测在向前区域或向后区域中是否有运动(向前和向后倾斜)(参见更新的草图)。
间距的问题在于,如果设备处于直立位置,它的起始值约为 1.6。当我将它向前或向后倾斜到水平药水时,该值会降低相同。相同的行为适用于加速度计 y 值。
看起来我错过了整个核心运动的一些东西。有任何想法吗
谢谢基督徒
我正在使用以下代码获取加速度计数据(使用CoreMotion框架):
CMMotionManager *motionManager = [[CMMotionManager alloc] init];
motionManager.accelerometerUpdateInterval = 1.0 / 60.0;
[motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue]
withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
NSLog(@"ACCELEROMETER DATA = %@",accelerometerData);
}];
Run Code Online (Sandbox Code Playgroud)
当应用程序处于前台模式时,我正在接收日志,但是当它进入后台时,我只在应用程序中的音乐正在播放时才会收到日志.我已将以下内容添加到app info plist文件中:
- Required background modes
- App registers for location updates
- App plays audio or streams audio/video using AirPlay
Run Code Online (Sandbox Code Playgroud)
问题是:当音乐没有播放时,如何在后台接收加速度计更新?
使用我的6+我一直在尝试使用CoreMotion的新CMAltimeter读取相对高度和压力.然而,回调永远不会解雇.我有一个非常相似的设置,而是使用加速度计,陀螺仪和磁力计.他们似乎都很好.
想知道是否有人设法获得阅读?
- (void)viewDidLoad {
[super viewDidLoad];
if([CMAltimeter isRelativeAltitudeAvailable]){
CMAltimeter *altimeterManager = [[CMAltimeter alloc]init];
[altimeterManager startRelativeAltitudeUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAltitudeData *altitudeData, NSError *error) {
// This never fires.
NSString *data = [NSString stringWithFormat:@"Altitude: %f %f", altitudeData.relativeAltitude.floatValue, altitudeData.pressure.floatValue];
NSLog(@"%@", data);
self.altimeterLabel.text = data;
}];
NSLog(@"Started altimeter");
self.altimeterLabel.text = @"-\n-";
} else {
NSLog(@"Altimeter not available");
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过快速步行,但是这里只有一个高度失去/获得的故事.
我正在处理一项任务,以确定 iPhone 6 何时在任何方向(x、y 或 Z)移动(最小的移动甚至不是抖动!)。实现这一目标的最佳方法是什么?
即使设备的方向被锁定,我也希望获得当前的iOS设备方向.(就像iOS相机应用)
我想至少检测人像,风景左和风景右.
当方向被锁定时,UIDeviceOrientation和UIInterfaceOrientation似乎不起作用.
在这种情况下,我认为我们将使用CoreMotion.
我如何在swift4中对其进行逻辑处理?
我正在尝试使用一些新的iOS 8 API的Swift,并且已经尝试了当天最好的部分来获得CMPedometer queryPedometerDataFromDate API来返回处理程序中的任何数据.我相信这是我的错误,与语法有点混淆.
这是我的代码,其中有关于打印出来的内容的评论:
var ped = CMPedometer()
var stepsTaken = NSNumber(int: 0)
println(dateNow) // 2014-06-07 21:23:55 +0000
println(dateMidnight) // 2014-06-07 00:00:00 +0000
ped.queryPedometerDataFromDate(dateMidnight, toDate: dateNow, withHandler:{
data, error in
println("Test1") // Does not print
println(error) // Does not print
stepsTaken = data.numberOfSteps
})
println("My Int Value \(stepsTaken)") // My Int Value 0
Run Code Online (Sandbox Code Playgroud) 我试图理解不同的运动/位置陀螺仪,运动和加速度是要表示的.(startGyroUpdates,startDeviceMotionUpdates等).
然而,经过一些研究,我正在努力看到陀螺仪和运动之间的区别.陀螺有旋转的x,y,z,而旋转有旋转,俯仰,旋转偏航......同样的事情?
我需要一些可以检测水平,垂直的用户实际将手机从原始位置移开的程度(就好像轴是你的手臂一样!)......我希望这就是动作.有人可以为我清楚这一点,并指导我使用我想要使用的正确工具吗?
干杯.
我在视图中使用CoreMotion来获取手机中的加速度和旋转值。我的应用程序有多个使用视图控制器的视图,因为我处理数据传输,因此我使用UIViewController设置了加速度计/陀螺仪的视图。但是我想根据从加速度计和陀螺仪得到的值来显示一个在屏幕上移动的球的图像。我一直在看教程,而这似乎只能通过游戏来完成。有没有一种方法可以显示不使用SKScene的使用CoreMotion移动的球?
core-motion ×10
ios ×8
swift ×5
iphone ×4
ios8 ×2
api ×1
apple-m7 ×1
cmaltimeter ×1
ios7 ×1
objective-c ×1
pitch ×1
sprite-kit ×1
uiview ×1