Request-Autorisierung für Medienbibliothek schlägt programmgesteuert fehl

iOS 10 erfordert jetzt die Berechtigung des Benutzers, auf die Medienbibliothek zuzugreifen. Wir prüfen, ob wir Zugriff auf die Medienbibliothek haben, bevor wir sie verwenden. Wenn nicht, verwenden wir [MPMediaLibrary requestAuthorization:, um die Autorisierung erneut vom Benutzer anzufordern.

Ich erwarte, dass dies dieselbe Popup-Anforderung für den Zugriff auf die Medienbibliothek anzeigt, die wir beim Start der App erhalten, aber es passiert nichts. Es kehrt einfach mit demMPMediaLibraryAuthorizationStatusDenied Status von vor.

Dasdocs for requestAuthorization sind zu diesem Zeitpunkt unvollständig, daher kann ich nicht sagen, ob ich dies nur falsch verwende oder etwas anderes nicht stimmt.

    if ( MPMediaLibrary.authorizationStatus == MPMediaLibraryAuthorizationStatusAuthorized)
    {
        // we already have access to the Media Library - use it here...
    }
    else
    {
        // We expect this to show a popup so the user can grant access, but does not work
        [MPMediaLibrary requestAuthorization:^(MPMediaLibraryAuthorizationStatus authorizationStatus)
         {
             if ( authorizationStatus == MPMediaLibraryAuthorizationStatusAuthorized )
             {
                 // success: the user authorized - use it here...
             }
             else
             {
                 // user did not authorize - tell user why here...
             }
         }];
    }

Aktualisiere

Anscheinend gibt es keine Möglichkeit, das ursprüngliche Dialogfeld erneut anzuzeigen (siehe Kommentare unten). Ich verwende jetzt diesen Code, um mich zumindest an die richtige Stelle in den Einstellungen zu bringen, damit der Benutzer die Änderung vornehmen kann. (für iOS8 und höher)

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];

Antworten auf die Frage(2)

Ihre Antwort auf die Frage