【问题标题】:MPMediaPickerControllerDelegate Permission Check SwiftMPMediaPickerControllerDelegate 权限检查 Swift
【发布时间】:2019-10-31 00:41:27
【问题描述】:

我的项目中有以下代码通过“MPMediaPickerControllerDelegate”选择音频文件。运行以下代码时,第一次提示用户授予权限。如果用户拒绝加载,选择器将静默失败。

如果用户一开始拒绝后返回,有没有办法提示用户授予权限?

我想知道这是否是一个错误。有什么方法可以检测 MPMediaPickerControllerDelegate 的权限,以便我们决定是否显示音频。

下面是我的代码:

let myMediaPickerVC = MPMediaPickerController(mediaTypes: MPMediaType.anyAudio)
myMediaPickerVC.allowsPickingMultipleItems = false
myMediaPickerVC.delegate = self
present(myMediaPickerVC, animated: true, completion: nil)

【问题讨论】:

    标签: ios swift permissions


    【解决方案1】:

    您必须首先检查授权权限,然后如果 authorizationStatus 权限为authorized,则运行您的代码。如果不是notDetermined,请请求许可。如果是denied,则显示警报,要求用户转到设置并启用此权限。

    MPMediaLibrary.requestAuthorization({(newPermissionStatus: MPMediaLibraryAuthorizationStatus) in  
        // This code will be called after the user allows or denies your app permission.  
        switch (permissionStatus) {  
            case MPMediaLibraryAuthorizationStatus.authorized:  
                 print("permission status is authorized")  
            case MPMediaLibraryAuthorizationStatus.notDetermined:  
                 print("permission status is not determined")  
              MPMediaLibrary.requestAuthorization(MPMediaLibraryAuthorizationStatus -> permissionStatus)  
            case MPMediaLibraryAuthorizationStatus.denied:  
                 print("permission status is denied")  
            case MPMediaLibraryAuthorizationStatus.restricted:  
                 print("permission status is restricted")  
        }  
    }) 
    

    【讨论】:

    • 谢谢您,先生,我正在尝试您的代码,但没有返回任何状态,当这段代码写在 viewDidLoad 上时,他们检查第一行并跳过所有代码。我真的很困惑为什么?
    • 在 - viewDidAppear.. 之后使用此代码。或者您可以通过 DispatchQueue.asyncAfter(.now()+0.5){... 此处代码使用延迟}
    • @ShamDass 与viewDidLoad一样,它无法导航或显示其他vcs,所以要么使用延迟,要么在viewDidAppear之后使用此代码
    • 如果这有效...然后接受这个答案并投票
    猜你喜欢
    • 2017-02-12
    • 2016-01-08
    • 2021-07-25
    • 2017-09-26
    • 2016-07-22
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    相关资源
    最近更新 更多