单个iPhone和Apple Watch型号支持哪些特定于设备的CMPedometer功能?

时间:2018-11-21 18:58:33

标签: ios iphone apple-watch

我想知道哪种iPhone型号支持哪些Core Motion-计步器(CMPedometer)功能。

我特别对以下属性的bool值感兴趣:

isCadenceAvailable()
isStepCountingAvailable()
isPaceAvailable()
isDistanceAvailable()
isPedometerEventTrackingAvailable()
isFloorCountingAvailable()

我可以使用iPhone SE和5s。 在这些模型上,我得到以下响应:

5秒

isCadenceAvailable: false
isStepCountingAvailable: true
isPaceAvailable: false
isDistanceAvailable: true
isPedometerEventTrackingAvailable: false
isFloorCountingAvailable: false

SE

isCadenceAvailable: true
isStepCountingAvailable: true
isPaceAvailable: true
isDistanceAvailable: true
isPedometerEventTrackingAvailable: true
isFloorCountingAvailable: false

如果其他成员可以提交其他iPhone型号的信息,例如6、6s,7、8,X,XR,XS和XS Max,我会很喜欢。我相信XR,XS和XS Max可以提供相同的结果,而8和X也应该提供相同的结果。


此外,也欢迎Apple Watch型号获得类似结果。这是

的数据

S0

isCadenceAvailable: true
isStepCountingAvailable: true
isPaceAvailable: true
isDistanceAvailable: true
isPedometerEventTrackingAvailable: true
isFloorCountingAvailable: false

这是打印出来的代码:

iOS

import UIKit
import CoreMotion

class ViewController: UIViewController {

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        print("isCadenceAvailable: \(CMPedometer.isCadenceAvailable())")
        print("isStepCountingAvailable: \(CMPedometer.isStepCountingAvailable())")
        print("isPaceAvailable: \(CMPedometer.isPaceAvailable())")
        print("isDistanceAvailable: \(CMPedometer.isDistanceAvailable())")
        print("isPedometerEventTrackingAvailable: \(CMPedometer.isPedometerEventTrackingAvailable())")
        print("isFloorCountingAvailable: \(CMPedometer.isFloorCountingAvailable())")
    }
}

watchOS

import WatchKit
import Foundation
import CoreMotion

class InterfaceController: WKInterfaceController {
    @IBOutlet var boolLabel: WKInterfaceLabel!

    override func willActivate() {
        super.willActivate()
        let b1 = CMPedometer.isDistanceAvailable() ? "Y" : "N"
        let b2 = CMPedometer.isStepCountingAvailable() ? "Y" : "N"
        let b3 = CMPedometer.isCadenceAvailable() ? "Y" : "N"
        let b4 = CMPedometer.isPaceAvailable() ? "Y" : "N"
        let b5 = CMPedometer.isPedometerEventTrackingAvailable() ? "Y" : "N"
        let b6 = CMPedometer.isFloorCountingAvailable() ? "Y" : "N"
        let str = b1 + b2 + b3 + b4 + b5 + b6

        boolLabel.setText(str)
    }
}

这个问题是关于其他iPhone和手表型号的信息。不幸的是,通过模拟器进行检查会为所有布尔值生成false。随时复制粘贴以上代码,然后在您的设备上运行以提供答案。

1 个答案:

答案 0 :(得分:0)

我一直在问自己一个类似的问题,因此准备了一个带有简单项目的存储库,以帮助跟踪功能的可用性。

https://github.com/reggian/availability

我将逐步填写丢失的数据,并添加在不同硬件上具有不同可用性的其他框架。

请随时贡献力量。