iOS Swift4 没有请求应用程序的权限



我需要在我的应用中访问cmaltimeter。因此,我当然需要要求许可。我添加了Privacy - Location When In Use Usage Description,当然还有Privacy - Motion Usage Description具有info.plist中的值。

(设备 -> 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")
}

我的最初问题是startRelativeAltitudeUpdates(to:withHandler)不起作用,并且被完全相同的问题所束缚: CMAltimeter.authorizationStatus()总是.notDetermined

然而,事实证明, CMAltimeter实例从范围中脱出并自动弧形,处理程序不再被调用。

摘要:ios12中的CMAltimeter没有requestAuthorization(),都不需要。

欢迎!您需要做两件事才能获得高度计数据的许可。首先是您已经拥有的PLIST描述。第二个是调用cmaltimeter.authorizationstatus()。这将询问用户使用您在PLIST中的字符串的权限。

您可以像cmaltimeter cmauthorizationStatus中获得四个结果之一:未确定,限制,拒绝或授权。如果您获得授权,那么您就可以了。如果您被拒绝,用户尚未授予他们的许可。受到限制是对此位置数据有一定的全系统限制(也许来自MDM)。

在XCode文档中搜索CMALTIMETER,授权Status和CmauthorizationStatus。

当您获得"授权"响应时,您可以使用处理程序致电StarTrelativeAltuduDpates,并且您的应用将在可用数据时获取更新。

相关内容

  • 没有找到相关文章

最新更新