【问题标题】:watchOS2 - CMSensorRecorderwatchOS2 - CMSensorRecorder
【发布时间】:2015-07-02 12:35:41
【问题描述】:

我想使用 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 Extension[2158:2428612] 从 Optional(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:无

【问题讨论】:

  • 你是在设备还是模拟器上调试?
  • 我都试过了,没有区别。
  • 在通话记录和轮询数据之间等待多长时间?我发现数据只有在录制开始后几分钟才可用。
  • 好的,我用appr测试了它。 4 分钟。我会尝试更长的差距。
  • 我用 13 分钟试了一下。又是零-.-

标签: javascript core-motion watchos-2


【解决方案1】:

也许你可以试试

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

看看Swift watchOS 2 - CMSensorDataList

【讨论】:

  • 最终使用新的 Xcode 和 iOS 测试版,该功能现在可以工作了。感谢您的帮助!
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    https://forums.developer.apple.com/thread/15470

    “它显然不喜欢在开始录制时将充电器插在手表上”

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

    【讨论】:

      【解决方案4】:

      确保已启用“设置”>“隐私”>“运动与健身”>“健身追踪”。

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

      CMSensorRecorder.isAccelerometerRecordingAvailable() == true

      CMSensorRecorder.authorizationStatus() == .authorized

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-12
        • 2015-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-20
        • 2017-02-15
        • 1970-01-01
        相关资源
        最近更新 更多