记录加速度计数据并分享

Posted

技术标签:

【中文标题】记录加速度计数据并分享【英文标题】:Recording accelerometer data and share 【发布时间】:2016-06-20 01:31:44 【问题描述】:

我正在努力获取设备在我们手中并移动时的加速度计数据。我已经完成了一个获取加速度计运动和旋转数据的工作程序。接下来是,我想记录它并通过电子邮件分享。我正在阅读有关 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 版本。那么为什么这会显示错误,因为加速度计记录不可用,以及如何摆脱这个? 有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

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

所以您需要构建并运行您的设备。

但是您的代码走在了正确的轨道上。

请让我们知道是不是模拟器是“问题”

【讨论】:

【参考方案2】:

好吧,老问题..但是

从 watch OS2.0 开始,Apple Watch 上以及 iOS11 和 iPhone 7 及更高版本的 iPhone 上都可以使用传感器记录器。你必须有 A10 CPU 的设备。

【讨论】:

以上是关于记录加速度计数据并分享的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Nike+ 记录加速度计数据?

加速 agg 并加入一个十亿记录的 pandas 表

技术分享:人工智能时代Cyborg组件提供vGPU加速

加速 Eloquent 查询

Uber应用分享 | 使用 Parquet Page Index 加速 Presto 查询

Uber应用分享 | 使用 Parquet Page Index 加速 Presto 查询