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

问题描述 投票:0回答:1

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

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

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

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

5s

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。随时复制粘贴以上代码,然后在您的设备上运行以提供答案。

ios iphone apple-watch
1个回答
0
投票

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

https://github.com/reggian/availability

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

请随时贡献。

© www.soinside.com 2019 - 2024. All rights reserved.