我想知道手表的相对高度变化。当手表连接到iPhone时,手表会返回iPhone的相对高度。即使iPhone已连接,我如何强制手表返回自己的高度。
下面是我的代码:
func startAltimeter() {
if CMAltimeter.isRelativeAltitudeAvailable() {
switch CMAltimeter.authorizationStatus() {
case .notDetermined: // Handle state before user prompt
print("*******************Motion permission is not determined")
case .restricted: // Handle system-wide restriction
fatalError("Authorization restricted!")
case .denied: // Handle user denied state
fatalError("Authorization denied!")
case .authorized: // Ready to go!
let _ = print("Authorized!")
@unknown default:
fatalError("Unknown Authorization Status")
}
self.altimeter.startRelativeAltitudeUpdates(to: OperationQueue.main) {(data,error) in
DispatchQueue.main.async {
self.relativeAlt = data?.relativeAltitude.doubleValue ?? 0.0
print("relative alttitude = \(self.relativeAlt) m")
}
}
} else {
DispatchQueue.main.async {
self.relativeAlt = -99
}
}
}发布于 2021-10-16 21:15:29
事实证明,如果iPhone与手表配对,relativeAltitude.doubleValue使用的是iPhone气压计。要直接从手表传感器获取高度,必须使用绝对高度(altitude属性)。
它没有文档记录,也没有意义,但这就是它的工作方式。
https://stackoverflow.com/questions/69562980
复制相似问题