我需要在我的应用程序中访问CMAltimeter。所以我当然需要请求许可。我添加了Privacy - Location When In Use Usage Description
,当然还有Privacy - Motion Usage Description
,在info.plist中设置了一个值,但应用程序从不请求权限,授权状态始终为not determined
(Device -> iPhone XR iOS12)和最新的Xcode。我在Xcode中的登录是使用我的Apple ID的个人团队,因为我们只需要在大学里使用它。(直到今天我还没有购买开发人员许可证)应用程序和CoreMotion运行。(CMDeviceMotion不需要权限)
func myDeviceMotionQFE(){
if CMAltimeter.isRelativeAltitudeAvailable() {
switch CMAltimeter.authorizationStatus() {
case .notDetermined:
print("Altimeter -> NotDetermined")
break
case .denied:
print("Altimeter -> Denied")
break
case .restricted:
print("Altimeter -> Restricted")
break
case .authorized:
print("Altimeter -> Authorized")
}
发布于 2019-04-21 02:35:30
我最初的问题是startRelativeAltitudeUpdates(to:withHandler)
不能工作,并且被完全相同的问题转移了注意力:CMAltimeter.authorizationStatus()
总是.notDetermined
。
然而,事实证明,CMAltimeter
实例超出了作用域,并被自动引出,处理程序不再被调用。
摘要: IOS12中没有用于CMAltimeter
的requestAuthorization()
,两者都不需要。
发布于 2019-03-09 07:11:18
欢迎!您需要做两件事才能获得高度测量数据的权限。首先是你已经有的plist描述。第二种方法是调用CMAltimeter.authorizationStatus()。这将要求用户使用plist中的字符串获取权限。
您可以获得与CMAltimeter CMAuthorizationStatus中相同的四个结果之一: notDetermined、restricted、denied或authorized。如果你得到授权,你就可以走了。如果你被拒绝了,用户就没有给他们许可。Restricted是指对此位置数据存在系统范围的限制(可能来自MDM )。
在Xcode文档中搜索CMAltimeter、authorizationStatus和CMAuthorizationStatus。
当您获得“授权”响应时,您可以使用处理程序调用startRelativeAltitudeUdpates,当数据可用时,您的应用程序将获得更新。
https://stackoverflow.com/questions/55064655
复制相似问题