CMPedometer步骤不可用。为什么?

时间:2017-10-09 14:40:20

标签: swift xcode nsdate core-motion

我正在尝试使用以下代码来获取使用coremotion库的步骤数。但至于我的输出我只得到步数不可用。我不知道我在哪里弄错了,这是我第一次使用这个库。我怀疑我的约会一定有问题,但我不确定

 @IBAction func btn(_ sender: Any) {

    let calendar = Calendar.current
    let twoDaysAgo = calendar.date(byAdding: .day, value: -2, to: Date())
    pedometer.queryPedometerData(from: twoDaysAgo!, to: Date()) { (data, error) in
        if(error != nil){
            print(error)
        }else{
            if (data != nil ){
                print(data?.numberOfSteps)

            }else{
                print("nil")
            }
        }
    }
}

我已经看到了其他类似的问题,他们没有帮助。我的测试设备完全支持传感器,但问题是我的步数为零。任何idae我该怎么解决?

1 个答案:

答案 0 :(得分:1)

您应该检查具有isStepCountingAvailable() CMPedometer功能的设备上的计步器是否可用

此外,函数startUpdates(from:withHandler:)从您提供给当前时刻的日期检索数据。在您的情况下,您将该日期设置为现在,因此没有新的数据。

如果要检索特定开始日期和结束日期的数据,请使用queryPedometerData(from:to:withHandler:)

这里有关于CMPedometer的一些文档:https://developer.apple.com/documentation/coremotion/cmpedometer