检测ALAuthorizationStatus更改iOS

Jac*_*Joz 2 ios alassetslibrary ios6

我遇到了一个问题,我需要检查应用是否可以访问照片.它提示用户通过标准隐私弹出决定.但是,看起来应用程序不会等待用户决定并继续(在无权限模式下).因此,即使用户允许它,它仍然显示我需要的自定义权限消息框.

//force the privacy prompt
ALAssetsLibrary *lib = [[ALAssetsLibrary alloc] init];
[lib assetForURL:[NSURL URLWithString:@""] resultBlock:nil failureBlock:nil];

//then check for permission
ALAuthorizationStatus authStatus = [ALAssetsLibrary authorizationStatus];

//1.
if(authStatus != ALAuthorizationStatusAuthorized)
{
  //show custom permissions required message box
}
Run Code Online (Sandbox Code Playgroud)

有没有办法获得有关权限更改的通知,并将我的代码移到1.该方法?

谢谢

雅各

skg*_*skg 5

我在经过一些测试后发现,在关闭照片权限警报视图后调用applicationDidBecomeActive.

我使用了NSNotificationCenter并能够捕获authorizationStatus更改事件.这在iOS 7下未经测试.

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(applicationDidBecomeActive:)
                                                 name:UIApplicationDidBecomeActiveNotification
                                               object:nil];
Run Code Online (Sandbox Code Playgroud)