iPhone:iOS 17.4 中没有气压数据

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

我的应用程序使用 iOS (iPhone) 上 CMAltimeter 的气压数据。这一直运作得很好。但安装 iOS 17.4 后,它就停止工作了。其他使用气压数据的应用程序也停止工作。所以这似乎是 iOS 17.4 的一个重大错误。

下面是用于测试这一点的(Swift)代码。此代码过去在 iOS 的早期版本中运行良好,但在 17.4 中,

authorizationStatus()
返回
.restricted
,并且调用处理程序时出现错误:

The operation couldn’t be completed. (CMErrorDomain error 105.)

这都表明存在一些身份验证失败。我已向 Apple 记录了错误报告。

但我想知道其他人是否也经历过同样的情况,以及是否有一些解决方法/解决方案可以使气压数据再次可用。

if CMAltimeter.isRelativeAltitudeAvailable() {
    status = CMAltimeter.authorizationStatus()
    self.altimeter.startRelativeAltitudeUpdates(to: OperationQueue.main) { (data, _error) in
        DispatchQueue.main.async {
            error = _error != nil ? _error!.localizedDescription : "<nil>"
            print(error)
            pressure = data != nil ? String(format: "%f", data!.pressure.doubleValue) : ""
        }
    }
}

PS: Core Motion 的文档(其中

CMAltimeter
是其中的一部分)说,需要为所有 Core Motion 服务定义
NSMotionUsageDescription
.info.plist
属性。我有该属性,但它似乎没有什么区别。

ios authorization core-motion cmaltimeter
1个回答
0
投票

您已在清单上添加了权限,但仍需要触发运动和健身权限。您可以通过记录传感器数据 0.1 秒来做到这一点:

let recorder = CMSensorRecorder() 
recorder.recordAccelerometer(forDuration: 0.1)
© www.soinside.com 2019 - 2024. All rights reserved.