记录加速度计数据并共享

时间:2016-06-20 01:31:44

标签: ios swift

当设备在我们手中并移动时,我正在努力获取加速度计数据。我已经完成了一个用于获取加速度计运动和旋转数据的工作程序。接下来,我想录制它并通过电子邮件分享。我正在阅读 recordAccelerometerForDuration ,但我不知道如何使用它来记录加速度计数据并通过电子邮件分享。我可以通过此链接https://developer.apple.com/library/ios/documentation/CoreMotion/Reference/CMSensorRecorder_class/

看到苹果开发人员的帮助

有人可以分享一些示例如何记录值并分享邮件来实现这两个目标吗?

更新

我准备了一个用于记录加速度计的示例代码,如下所示,

@IBAction func startRecorderAction() {

    guard CMSensorRecorder.isAccelerometerRecordingAvailable() else {

        print("Accelerometer data recording is not available")

        return
    }

    let recorder = CMSensorRecorder()
    let duration = 3.0

    if CMSensorRecorder.isAuthorizedForRecording(){
        print("SensorRecorder authorized")
    }else{
        print("SensorRecorder not authorized")
    }

    recorder.recordAccelerometerForDuration(duration)
    NSOperationQueue().addOperationWithBlock{[unowned recorder] in

        NSThread.sleepForTimeInterval(duration)

        let now = NSDate()

        let past = now.dateByAddingTimeInterval(-(duration))

        let data = recorder.accelerometerDataFromDate(past, toDate: now)

        let accelerationData: [CMAcceleration] = data!.map {

            //every $0 is CMRecordedAccelerometerData

            $0.acceleration

        }

        print(accelerationData)

    }
}

当我运行该应用程序时,它说"加速度计数据记录不可用" 。但我使用的是iPhone 6和iOS 9.3.1版本。那么为什么这会显示错误,因为加速度计记录不可用以及如何摆脱这个? 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

通常,在模拟器中运行时,所有传感器数据都不可用。

因此,您需要构建并运行您的设备。

但是你的代码在正确的轨道上。

请告诉我们这是否是模拟器"问题"

答案 1 :(得分:0)

好了,老问题了。但是

传感器记录器可从手表OS2.0的Apple Watch以及从iOS11和iPhone 7及更高版本的iPhone上获得。您必须拥有配备A10 CPU的设备。