iOS 10现在要求用户授权才能访问媒体库。我们在使用媒体库之前会检查是否有访问权限,如果没有,则使用[MPMediaLibrary requestAuthorization:
再次向用户请求授权。
我期望这将显示与应用程序启动时获取的访问媒体库的弹出请求相同的内容,但是什么也没有发生。它只是返回以前的MPMediaLibraryAuthorizationStatusDenied
状态。
requestAuthorization的文档目前不完整,因此我无法确定我是否使用不正确,或者还有其他问题。
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...
}
}];
}
更新
显然没有办法使原始对话框重新出现(请参见下面的评论)。我现在使用这段代码,至少可以带我到正确的设置位置,以便用户可以进行更改。(适用于iOS8及以上版本)
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];