ios - 个别 iPhone 和 Apple Watch 型号支持哪些特定于设备的 CMPedometer 功能?
问题描述
我有兴趣了解CMPedometer
哪些 iPhone 型号支持哪些 Core Motion - Pedometer ( ) 功能。
具体来说,我对bool
以下属性的值感兴趣:
isCadenceAvailable()
isStepCountingAvailable()
isPaceAvailable()
isDistanceAvailable()
isPedometerEventTrackingAvailable()
isFloorCountingAvailable()
我可以使用 iPhone SE 和 5s。在这些模型上,我得到了以下回复:
5s
isCadenceAvailable: false
isStepCountingAvailable: true
isPaceAvailable: false
isDistanceAvailable: true
isPedometerEventTrackingAvailable: false
isFloorCountingAvailable: false
东南
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())")
}
}
手表操作系统
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。随意复制粘贴上述代码并在您的设备上运行以提供答案。
解决方案
我一直在问自己一个类似的问题,因此准备了一个包含一个简单项目的 repo,以帮助跟踪功能的可用性。
https://github.com/reggian/availability
我会逐渐填补缺失的数据,并添加在不同硬件上具有不同可用性的其他框架。
请随时贡献。
推荐阅读
- python - 复选框旁边的文本,python
- python-3.x - Tweepy 函数为给定的地理位置获取 0 条推文
- linux - 为什么 /etc/hosts 中的 0.0.0.0 可以阻止某个网站?
- amazon-dynamodb - 如何使用 GSI 在 DynamoDB 中查询超过 2 个属性?
- spring - Spring Boot REST - 如何以多对多关系发布/修补
- python - 使用 numpy 对应行的向量点积
- python-3.x - 播放按钮不起作用
- python - 调用 Python 的多处理函数的最佳位置在哪里?
- c - 无法将参数传递给自写函数
- spring - Spring RequestMapping Controller 注解并在同一个Controller内创建不同的绝对路径