iOS6.0以上系统访问系统相册隐私提示方法截获

     在iOS6.0以上系统增加了隐私的选项,例如你的相册,通讯录,地理位置等,都会被保护,任意一个第三方的app 访问都要经过用户自己的同意,

例如:


这样我们自己的app 有时候也会需要知道用户是同意了还是不同意,好做一些处理。

这个也是有办法解决的,具体方法是:

1. 导入库“AssetsLibrary.framework”

2.在要用的类中引入头文件:#import<AssetsLibrary/ALAssetsLibrary.h>

3.在要调用系统相册的方法中加入一下代码:

 if ([ALAssetsLibrary authorizationStatus] == ALAuthorizationStatusNotDetermined) {
        
        ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];
        
        [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
            
            if (*stop) {
                //点击“好”回调方法:这里是重点
                NSLog(@"好");
                return;
                
            }
            *stop = TRUE;
            
        } failureBlock:^(NSError *error) {
            
            //点击“不允许”回调方法:这里是重点
            NSLog(@"不允许");
           [self dismissViewControllerAnimated:YES completion:nil];
            
        }];
    }


这里我是在一个button里面做了处理,如下:

-(IBAction)LoadPhotoAlbum:(id)sender
{
    if ([ALAssetsLibrary authorizationStatus] == ALAuthorizationStatusNotDetermined) {
        
        ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];
        
        [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
            
            if (*stop) {
                //点击“好”回调方法:
                NSLog(@"好");
                return;
                
            }
            *stop = TRUE;
            
        } failureBlock:^(NSError *error) {
            
            //点击“不允许”回调方法:
            NSLog(@"不允许");
           [self dismissViewControllerAnimated:YES completion:nil];
            
        }];
    }
    
    UIImagePickerController *PickerC = [[UIImagePickerController alloc] init];
    PickerC.delegate = self;
    PickerC.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        popOver = [[UIPopoverController alloc] initWithContentViewController:PickerC];
        [popOver presentPopoverFromRect:CGRectMake(0, 800, 500, 500) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
        
        popOver.delegate = self;
    } else {
        [self presentViewController:PickerC animated:YES completion:nil];
    }
    
}

然后就完全ok了。

如果我选择了“不允许”我会自己让我的imagePickerView dismiss。



如果点击了“好”。那就可以正常访问了:


下一步就是人脸识别了:


ok了。


源代码下载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值