繁体   English   中英

从Apple Watch(而非iPhone)获取加速度计和陀螺仪数据?

[英]Get accelerometer and gyroscope data from apple watch (and not the iphone)?

看到此问题后 ,我尝试编写一个快速程序,将手表的加速度计和陀螺仪数据保存到文件中。

@implementation InterfaceController{
    NSMutableArray *accData;
    bool recording;
}
- (void)awakeWithContext:(id)context {
    [super awakeWithContext:context];
    // Configure interface objects here.
    self.motionManager = [[CMMotionManager alloc] init];
    [self.motionManager setAccelerometerUpdateInterval:.01];
}

- (IBAction)startStopRecording {
    if (!recording){//We are starting to record.
        recording = YES;
        accData = [[NSMutableArray alloc] init];
        [self.startRecording setTitle:@"Stop Recording"];
        [self.motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
            [accData addObject:[NSString stringWithFormat:@"%f, %f, %f", accelerometerData.acceleration.x, accelerometerData.acceleration.y, accelerometerData.acceleration.z]];
        }];
    }else{
        recording = NO;//we are stopping the recording
        [self.motionManager stopAccelerometerUpdates];
        [self.startRecording setTitle:@"Start Recording"];
        [InterfaceController openParentApplication:@{ @"accData": accData } reply:^(NSDictionary *replyInfo, NSError *error) { //this method saves the array to a csv file.
            NSLog(@"Data has been saved.");
        }];
    }
}

我已经绘制了这些数据,并且为了我的一生,无论我多么努力地摇动手表,我所有的绘制都像这样:

在此处输入图片说明

直到8小时后,我开始怀疑我不是从手表上获取加速度数据,而是从手机上获取(仍然坐在我旁边的桌子上)。 我进行了一些测试,并确认这正是正在发生的情况。

这使我想到了最初的问题。 如何从手表而不是从iPhone提取加速度/陀螺仪/数据?

问题是我没有运行watchOS2。 我以为是,但它仍处于测试阶段,而我尚未安装。 我得到的数据是来自手机的加速度计数据。 另外,目前,您只能使用watchOS2从手表获取acc数据,而不能从陀螺仪数据获取。

您可以使用CoreMotion框架获取活动数据。 虽然我只能获取加速数据,但陀螺仪经常返回false。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM