首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS Swift4未请求应用程序的权限

iOS Swift4未请求应用程序的权限
EN

Stack Overflow用户
提问于 2019-03-08 21:52:59
回答 2查看 688关注 0票数 2

我需要在我的应用程序中访问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不需要权限)

代码语言:javascript
运行
复制
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")
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-21 02:35:30

我最初的问题是startRelativeAltitudeUpdates(to:withHandler)不能工作,并且被完全相同的问题转移了注意力:CMAltimeter.authorizationStatus()总是.notDetermined

然而,事实证明,CMAltimeter实例超出了作用域,并被自动引出,处理程序不再被调用。

摘要: IOS12中没有用于CMAltimeterrequestAuthorization(),两者都不需要。

票数 1
EN

Stack Overflow用户

发布于 2019-03-09 07:11:18

欢迎!您需要做两件事才能获得高度测量数据的权限。首先是你已经有的plist描述。第二种方法是调用CMAltimeter.authorizationStatus()。这将要求用户使用plist中的字符串获取权限。

您可以获得与CMAltimeter CMAuthorizationStatus中相同的四个结果之一: notDetermined、restricted、denied或authorized。如果你得到授权,你就可以走了。如果你被拒绝了,用户就没有给他们许可。Restricted是指对此位置数据存在系统范围的限制(可能来自MDM )。

在Xcode文档中搜索CMAltimeter、authorizationStatus和CMAuthorizationStatus。

当您获得“授权”响应时,您可以使用处理程序调用startRelativeAltitudeUdpates,当数据可用时,您的应用程序将获得更新。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55064655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档