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



我很想知道哪些iPhone型号支持哪些核心运动Pedometer(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,XSMax


此外,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和手表型号的信息。不幸的是,通过Simulator进行检查会为所有布尔值生成false。请随意复制粘贴上述代码,并在您的设备上运行以提供答案。

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

https://github.com/reggian/availability

我会逐渐填补缺失的数据,并添加其他在不同硬件上具有不同可用性的框架。

请随意投稿。

最新更新