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

本文介绍了一种在iOS应用中请求访问用户通讯录的方法,并详细展示了如何使用Objective-C代码实现授权流程,确保应用程序遵循iOS 6及更高版本的隐私保护规定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做了个项目要求  访问用户的通讯录并且针对通讯录里的数据进行筛选,基于现有的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里,程序在第一次启动的时候会进行提示 “是否允许访问通讯录功能


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值