2

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

//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. 移到该方法?

谢谢

雅各布

4

1 回答 1

5

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

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

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(applicationDidBecomeActive:)
                                                 name:UIApplicationDidBecomeActiveNotification
                                               object:nil];
于 2014-02-28T04:48:07.257 回答