【问题标题】:iOS Swift4 Didn't Ask for Permission on AppiOS Swift4 没有在 App 上请求权限
【发布时间】:2019-04-21 12:22:11
【问题描述】:

我需要在我的应用程序中访问 CMAltmeter。 所以我当然需要征求许可。 我在 info.plist 中添加了 Privacy - Location When In Use Usage Description 和当然 Privacy - Motion Usage Description 的值,但应用程序从不请求权限,并且始终未确定授权状态

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

【问题讨论】:

  • 你的代码中有locationManager.requestWhenInUseAuthorization()这一行吗?
  • 好的,位置提示即将到来(所以我更进一步,因为在没有提示之前),但我需要 CoreMotion 而不是 CoreLocation 中的高度计的提示。

标签: ios swift core-motion ios12 iphone-xr


【解决方案1】:

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

但事实证明,CMAltimeter 实例超出了范围并被自动 ARC 处理,并且不再调用处理程序。

总结:IOS12中没有requestAuthorization()对应CMAltimeter,两者都不需要。

【讨论】:

    【解决方案2】:

    欢迎!您需要做两件事来获得测高数据的许可。首先是您已经拥有的 plist 描述。第二种是调用CMAltmeter.authorizationStatus()。这将使用您在 plist 中的字符串向用户请求许可。

    您可以获得如 CMAltmeter CMAuthorizationStatus 中的四个结果之一:未确定、受限、拒绝或授权。如果你得到授权,你就可以走了。如果您被拒绝,则用户没有给予他们的许可。限制是此位置数据存在一些系统范围的限制(可能来自 MDM)。

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

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

    【讨论】:

    • 我已经编辑了我的问题,因为我已经有 CMAltmeter.authorizationStatus() 并检查了 4 个枚举。但我从来没有得到提示,开关总是在 .notDetermined Case
    猜你喜欢
    • 2016-01-05
    • 2018-07-29
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2015-12-07
    • 2014-11-17
    • 1970-01-01
    相关资源
    最近更新 更多