我有一个“设置”视图,用户可以在其中选择打开或关闭功能“导出到摄影机滚轮””
当用户第一次打开它时(而不是在他拍摄第一张照片时),我希望该应用程序向他请求访问相机卷的权限
我在许多应用程序中看到过行为,但找不到方法
我不确定是否有一些内置的方法来实现这一点,但一个简单的方法是在打开该功能时使用AlassetLibrary从照片库中提取一些无意义的信息。然后,你可以简单地取消你所获取的任何信息,你会提示用户访问他们的照片
例如,下面的代码只获取相机卷中的照片数量,但足以触发权限提示
#导入<;资产库/资产库.h>;
AlassetLibrary*lib=[[AlassetLibrary alloc]init];
[lib enumerateGroupsWithTypes:alassetgroupsavedphotos usingBlock:^(alassetgroup*group,BOOL*stop){
NSLog(@“%zd”,[group numberOfAssets]);
}故障块:^(N错误*错误){
if(error.code==AlasSetLibraryAccessUserDeniedError){
NSLog(@“用户拒绝访问,代码:%zd”,错误代码);
}否则{
NSLog(@“其他错误代码:%zd”,错误代码);
}
}];
编辑:刚刚偶然发现,下面是如何检查应用程序访问相册的授权状态
AlaAuthorizationStatus=[AlassetLibrary authorizationStatus];
如果(状态!=ALAuthorizationStatusAuthorized){
UIAlertView*alert=[[UIAlertView alloc]initWithTitle:@“注意”消息:@“请授予此应用访问设置应用中的照片库的权限!”代理:nil cancelButtonTitle:@“关闭”其他按钮:nil,nil];
[警报显示];
}