2013-08-19 30 views
2

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

//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到方法,而不是移动我的代码?

感谢

雅各

+0

这是一个非常古老的问题,但我被困在同一条船上。我在下面的答案中订阅了两个通知,但是当我收到通知并致电authorizationStatus时,它不会为我提供更新状态。 – OlivaresF

回答

5

我发现了一些测试之后applicationDidBecomeActive盯着照片权限警报视图被驳回调用。

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

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