最近做了個項目要求 訪問用戶的通訊錄並且針對通訊錄裏的數據進行篩選,基於現有的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裏,程序在第一次啓動的時候會進行提示 “是否允許訪問通訊錄功能