Javascript watchOS2-CMSensorRecorder

Javascript watchOS2-CMSensorRecorder,javascript,core-motion,watchos-2,Javascript,Core Motion,Watchos 2,我想使用Apple Watch的历史加速计数据,我的accDataList始终为零。我在类的init函数中实例化了CMSensorRecorder。以前有人有过这个问题吗 func startMovementDetection(){ self.cmSensorRecorder?.recordAccelerometerFor(self.recorderDuration) self.startDate = NSDate() } func extractHistoricalAccel

我想使用Apple Watch的历史加速计数据,我的accDataList始终为零。我在类的init函数中实例化了CMSensorRecorder。以前有人有过这个问题吗

func startMovementDetection(){
    self.cmSensorRecorder?.recordAccelerometerFor(self.recorderDuration)
    self.startDate = NSDate()
}

func extractHistoricalAccelerometerData(){
    var accDataList = self.cmSensorRecorder!.accelerometerDataFrom(self.startDate, to: NSDate())
    NSLog("AccDataList : \(accDataList)")
    if accDataList != nil {
        accDataList = accDataList as CMSensorDataList
        for accData in accDataList {
            self.addHistoricalAccDataToMovementArray((accData as? CMRecordedAccelerometerData)?.acceleration)
        }
        self.sendDataToIphone()
    }        
}
日志如下所示:

2015-07-11 22:02:55.279 emmoveDataWatchOS扩展[2158:2428612]开始录制

2015-07-11 22:02:55.279 emmoveDataWatchOS扩展[2158:2428612]AW:启动运动更新

2015-07-11 22:02:55.279 emmoveDataWatchOS扩展[2158:2428612]AW EMWatchManager:startMovementDetection

2015-07-11 22:02:55.279 emmoveDataWatchOS扩展[2158:2428612]可选(CMSensorRecorder:0x797733d0)

2015-07-11 22:10:51.483 emmoveDataWatchOS扩展[2158:2428612]AW:停止运动更新

2015-07-11 22:10:51.484 emmoveDataWatchOS扩展[2158:2428612]从可选(2015-07-11 20:02:55+0000)提取数据到2015-07-11 20:10:51+0000

2015-07-11 22:10:51.484 emmoveDataWatchOS扩展[2158:2428612]可选(CMSensorRecorder:0x797733d0)

2015-07-11 22:10:51.486 emmoveDataWatchOS扩展[2158:2428612]AccDataList:nil可能您可以尝试

func startMovementDetection(){
    self.startDate = NSDate()
    self.cmSensorRecorder?.recordAccelerometerFor(self.recorderDuration)
}

请看一看

CMSensorRecorder也有一个错误:您应该等待3到5分钟重新启动您的录像机,否则列表将始终返回零。(您可以观看苹果的视频了解更多详细信息。)

我也有同样的问题,在这篇文章中找到了解决方案:

“它显然不喜欢在开始重新编码时将充电器插在手表上”


只需断开设备与充电器的连接。这是有道理的,但当然没有在任何地方正式记录…

确保“设置>隐私>运动和健身>健身跟踪”已启用

如果禁用它,
CMSensorRecorder.accelerometerData()
似乎总是返回零,即使

CMSensorRecorder.isAccelerometerRecordingAvailable()==true


CMSensorRecorder.authorizationStatus()==.authorized

您是在设备上调试还是在模拟器上调试?我两个都试过了,没有区别。在调用记录和轮询数据之间,您要等待多久?我发现数据只有在录制开始后几分钟才可用。好的,我用appr测试了它。4分钟。我会用更长的间隔来尝试。我确实用了13分钟来尝试。结果又是零--最终使用了新的Xcode和iOS betas,该功能现在可以工作了。谢谢你的帮助!