4
如何獲取iPhone地址簿中聯繫人的電子郵件地址? 我有一個應用程序,我想在其中導入地址簿中的任何聯繫人以及他的所有信息,如姓名,電話號碼和電子郵件。 姓名,號碼工作正常我也想取地址。 請幫忙使用代碼功能。Xcode從地址簿獲取聯繫人電子郵件地址
如何獲取iPhone地址簿中聯繫人的電子郵件地址? 我有一個應用程序,我想在其中導入地址簿中的任何聯繫人以及他的所有信息,如姓名,電話號碼和電子郵件。 姓名,號碼工作正常我也想取地址。 請幫忙使用代碼功能。Xcode從地址簿獲取聯繫人電子郵件地址
您應該添加框架工作AddressBook.framework
並在.m文件中添加#import <AddressBook/AddressBook.h>
。
從地址簿中獲取聯繫人的電子郵件地址::
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
NSMutableArray *allEmails = [[NSMutableArray alloc] initWithCapacity:CFArrayGetCount(people)];
for (CFIndex i = 0; i < CFArrayGetCount(people); i++) {
ABRecordRef person = CFArrayGetValueAtIndex(people, i);
ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty);
for (CFIndex j=0; j < ABMultiValueGetCount(emails); j++) {
NSString* email = (NSString*)ABMultiValueCopyValueAtIndex(emails, j);
[allEmails addObject:email];
[email release];
}
CFRelease(emails);
}
NSLog(@"All Mails:%@",allEmails);
CFRelease(addressBook);
CFRelease(people);
我認爲這將是對你有所幫助。
編輯::
您應該使用委託- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
方法。當您選擇聯繫人列表中的任何人時,此方法將會調用。試試這個...
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty);
NSString *emailId = (NSString *)ABMultiValueCopyValueAtIndex(emails, 0);//0 for "Home Email" and 1 for "Work Email".
NSLog(@"Email:: %@",emailId);
return YES;
}
感謝reply.But我想獲取特定的選定聯繫人 – user1500683 2012-07-14 04:31:16
此代碼獲取地址簿中的所有聯繫人的所有電子郵件地址的電子郵件,但是我想獲取的不僅僅是電子郵件地址一次選擇聯繫人。請幫助。謝謝 – user1500683 2012-07-14 04:41:17
我已編輯。覈實。 – 2012-07-14 05:07:22