簡體   English   中英

將Outlook聯系人與IOS電話簿區分開(聯系人)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM