[英]Differentiate outlook contacts from IOS phone book (Contacts)
我可以通過以下代碼讀取電話聯系人。它將從聯系人中讀取所有聯系人,包括“ OUTLOOK SYNC CONTACTS”,
如何確定聯系人是否來自Outlook?
要么
如何區分同步聯系人(outlook,gmail,wats應用程序聯系人)與其他本地聯系人?
-(void) getLocalPhContacts{
@autoreleasepool {
NSMutableArray *arr = [[NSMutableArray alloc] init];
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
//ABAddressBookRef addressBook = ABAddressBookCreate();
});
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
CFErrorRef *error = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex numberOfPeople = ABAddressBookGetPersonCount(addressBook);
for(int i = 0; i < numberOfPeople; i++) {
PhoneContactEntry *phEntry = [[PhoneContactEntry alloc] init];
ABRecordRef person = CFArrayGetValueAtIndex( allPeople, i );
NSString *firstName = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonFirstNameProperty));
NSString *lastName = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonLastNameProperty));
NSString *property = (__bridge NSString *)(ABRecordCopyValue(person, kABSourceType));
VELog(@"property: %@ name=%@",property ,firstName);
NSString *lName=(lastName!=nil && [lastName length]>0)?lastName:@"";
NSString *name= [NSString stringWithFormat:@"%@ %@",firstName,lName];
[phEntry setName:name];
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
[[UIDevice currentDevice] name];
//VELog(@"\n%@\n", [[UIDevice currentDevice] name]);
for (CFIndex i = 0; i < ABMultiValueGetCount(phoneNumbers); i++) {
NSString *phoneNumber = (__bridge_transfer NSString *) ABMultiValueCopyValueAtIndex(phoneNumbers, i);
if(i==0){
[phEntry setNumber:phoneNumber];
}
[phEntry addNumber:phoneNumber];
//addressBookNum = [addressBookNum stringByAppendingFormat: @":%@",phoneNumber];
VELog(@" ph number %@",phoneNumber);
// NSString *complete = [NSString stringWithFormat:@"%@ %@ %@", firstName,
// lastName,phoneNumber];
}
[arr addObject:phEntry];
}
// VELog(@"AllNumber:%@",addressBookNum);
[self saveToDb:arr];
}
else {
VELog(@"Send an alert telling user to change privacy setting in settings app");
}
}
}
請指導我
謝謝
阿米斯
您是否嘗試過使用MFCMAPI將您不想同步的聯系人之一與想要同步的聯系人一起打開,以查看有什么顯着差異(如果有的話)?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.