检测ALAuthorizationStatus更改iOS

时间:2013-08-19 05:08:13

标签: ios ios6 alassetslibrary

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

//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
}

是否有某种方法可以获得有关权限更改的通知,并将我的代码移至1.该方法?

由于

雅各

1 个答案:

答案 0 :(得分:5)

我在一些测试后发现,在取消照片权限提醒视图后调用applicationDidBecomeActive。

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

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(applicationDidBecomeActive:)
                                                 name:UIApplicationDidBecomeActiveNotification
                                               object:nil];