1. 程式人生 > >IOS通訊錄開發<1> 授權應用訪問通訊錄

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裡,程式在第一次啟動的時候會進行提示 “是否允許訪問通訊錄功能