IOS通讯录开发<1> 授权应用访问通讯录

最近做了个项目要求  访问用户的通讯录并且针对通讯录里的数据进行筛选,基于现有的IM用户体系,进行邀请添加聊天。


首先用户通讯录信息 作为重要的隐私,访问通讯录 在IOS6 以上版本 是必须经过用户同意,才可以访问。

ABAddressBookRef addressBook =NULL;
    
    if([[UIDevice currentDevice].systemVersion floatValue] >= 6.0){
        
        CFErrorRef error = NULL;
        
        addressBook =ABAddressBookCreateWithOptions(NULL, &error);
        
        ABAuthorizationStatus authorizationStatus =ABAddressBookGetAuthorizationStatus();
        
        
        
        //        dispatch_semaphore_t sema = dispatch_semaphore_create(0);
        
        if(authorizationStatus ==kABAuthorizationStatusNotDetermined){
            
            ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted,CFErrorRef error) {
                
                if(granted)
                    
                    
                    
                    NSLog(@"授权");
                
                else
                    
                    NSLog(@"拒绝");
                
                //                dispatch_semaphore_signal(sema);
                
            });
            
            //            dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
            
        }
        
    }
    
    else
        
    {
        
        addressBook =ABAddressBookCreate();
        
    }

- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions


如果以上代码放在AppDelegate里,程序在第一次启动的时候会进行提示 “是否允许访问通讯录功能


猜你喜欢

转载自blog.csdn.net/w250130255/article/details/44116697