CMPedometer 步数不可用。为什么?

CMPedometer Steps not Available . why?

我正在尝试使用以下代码通过 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 我该如何解决?

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

此外,函数 startUpdates(from:withHandler:) 检索从您指定的日期到现在的数据。在您的情况下,您将该日期设置为现在,因此没有新数据。

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

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