ios 开发,通讯录信息调用常用方法,这个比较全,不用再整理了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 ABAddressBookRef addressBook = ABAddressBookCreate(); CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook); for ( int i = 0; i < CFArrayGetCount(results); i++) { ABRecordRef person = CFArrayGetValueAtIndex(results, i); //读取firstname NSString *personName = ( NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty); if (personName != nil ) textView.text = [textView.text stringByAppendingFormat:@ "\n姓名:%@\n" ,personName]; //读取lastname NSString *lastname = ( NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty); if (lastname != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,lastname]; //读取middlename NSString *middlename = ( NSString *)ABRecordCopyValue(person, kABPersonMiddleNameProperty); if (middlename != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,middlename]; //读取prefix前缀 NSString *prefix = ( NSString *)ABRecordCopyValue(person, kABPersonPrefixProperty); if (prefix != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,prefix]; //读取suffix后缀 NSString *suffix = ( NSString *)ABRecordCopyValue(person, kABPers*****uffixProperty); if (suffix != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,suffix]; //读取nickname呢称 NSString *nickname = ( NSString *)ABRecordCopyValue(person, kABPersonNicknameProperty); if (nickname != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,nickname]; //读取firstname拼音音标 NSString *firstnamePhonetic = ( NSString *)ABRecordCopyValue(person, kABPersonFirstNamePhoneticProperty); if (firstnamePhonetic != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,firstnamePhonetic]; //读取lastname拼音音标 NSString *lastnamePhonetic = ( NSString *)ABRecordCopyValue(person, kABPersonLastNamePhoneticProperty); if (lastnamePhonetic != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,lastnamePhonetic]; //读取middlename拼音音标 NSString *middlenamePhonetic = ( NSString *)ABRecordCopyValue(person, kABPersonMiddleNamePhoneticProperty); if (middlenamePhonetic != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,middlenamePhonetic]; //读取organization公司 NSString *organization = ( NSString *)ABRecordCopyValue(person, kABPersonOrganizationProperty); if (organization != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,organization]; //读取jobtitle工作 NSString *jobtitle = ( NSString *)ABRecordCopyValue(person, kABPersonJobTitleProperty); if (jobtitle != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,jobtitle]; //读取department部门 NSString *department = ( NSString *)ABRecordCopyValue(person, kABPersonDepartmentProperty); if (department != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,department]; //读取birthday生日 NSDate *birthday = ( NSDate *)ABRecordCopyValue(person, kABPersonBirthdayProperty); if (birthday != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,birthday]; //读取note备忘录 NSString *note = ( NSString *)ABRecordCopyValue(person, kABPersonNoteProperty); if (note != nil ) textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,note]; //第一次添加该条记录的时间 NSString *firstknow = ( NSString *)ABRecordCopyValue(person, kABPersonCreationDateProperty); NSLog (@ "第一次添加该条记录的时间%@\n" ,firstknow); //最后一次修改該条记录的时间 NSString *lastknow = ( NSString *)ABRecordCopyValue(person, kABPersonModificationDateProperty); NSLog (@ "最后一次修改該条记录的时间%@\n" ,lastknow); //获取email多值 ABMultiValueRef email = ABRecordCopyValue(person, kABPersonEmailProperty); int emailcount = ABMultiValueGetCount(email); for ( int x = 0; x < emailcount; x++) { //获取email Label NSString * emailLabel = ( NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(email, x)); //获取email值 NSString * emailContent = ( NSString *)ABMultiValueCopyValueAtIndex(email, x); textView.text = [textView.text stringByAppendingFormat:@ "%@:%@\n" ,emailLabel,emailContent]; } //读取地址多值 ABMultiValueRef address = ABRecordCopyValue(person, kABPersonAddressProperty); int count = ABMultiValueGetCount(address); for ( int j = 0; j < count; j++) { //获取地址Label NSString * addressLabel = ( NSString *)ABMultiValueCopyLabelAtIndex(address, j); textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,addressLabel]; //获取該label下的地址6属性 NSDictionary * personaddress =( NSDictionary *) ABMultiValueCopyValueAtIndex(address, j); NSString * country = [personaddress valueForKey:( NSString *)kABPersonAddressCountryKey]; if (country != nil ) textView.text = [textView.text stringByAppendingFormat:@ "国家:%@\n" ,country]; NSString * city = [personaddress valueForKey:( NSString *)kABPersonAddressCityKey]; if (city != nil ) textView.text = [textView.text stringByAppendingFormat:@ "城市:%@\n" ,city]; NSString * state = [personaddress valueForKey:( NSString *)kABPersonAddressStateKey]; if (state != nil ) textView.text = [textView.text stringByAppendingFormat:@ "省:%@\n" ,state]; NSString * street = [personaddress valueForKey:( NSString *)kABPersonAddressStreetKey]; if (street != nil ) textView.text = [textView.text stringByAppendingFormat:@ "街道:%@\n" ,street]; NSString * zip = [personaddress valueForKey:( NSString *)kABPersonAddressZIPKey]; if (zip != nil ) textView.text = [textView.text stringByAppendingFormat:@ "邮编:%@\n" ,zip]; NSString * coutntrycode = [personaddress valueForKey:( NSString *)kABPersonAddressCountryCodeKey]; if (coutntrycode != nil ) textView.text = [textView.text stringByAppendingFormat:@ "国家编号:%@\n" ,coutntrycode]; } //获取dates多值 ABMultiValueRef dates = ABRecordCopyValue(person, kABPersonDateProperty); int datescount = ABMultiValueGetCount(dates); for ( int y = 0; y < datescount; y++) { //获取dates Label NSString * datesLabel = ( NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(dates, y)); //获取dates值 NSString * datesContent = ( NSString *)ABMultiValueCopyValueAtIndex(dates, y); textView.text = [textView.text stringByAppendingFormat:@ "%@:%@\n" ,datesLabel,datesContent]; } //获取kind值 CFNumberRef recordType = ABRecordCopyValue(person, kABPersonKindProperty); if (recordType == kABPersonKindOrganization) { // it's a company NSLog (@ "it's a company\n" ); } else { // it's a person, resource, or room NSLog (@ "it's a person, resource, or room\n" ); } //获取IM多值 ABMultiValueRef instantMessage = ABRecordCopyValue(person, kABPersonInstantMessageProperty); for ( int l = 1; l < ABMultiValueGetCount(instantMessage); l++) { //获取IM Label NSString * instantMessageLabel = ( NSString *)ABMultiValueCopyLabelAtIndex(instantMessage, l); textView.text = [textView.text stringByAppendingFormat:@ "%@\n" ,instantMessageLabel]; //获取該label下的2属性 NSDictionary * instantMessageContent =( NSDictionary *) ABMultiValueCopyValueAtIndex(instantMessage, l); NSString * username = [instantMessageContent valueForKey:( NSString *)kABPersonInstantMessageUsernameKey]; if (username != nil ) textView.text = [textView.text stringByAppendingFormat:@ "username:%@\n" ,username]; NSString * service = [instantMessageContent valueForKey:( NSString *)kABPersonInstantMessageServiceKey]; if (service != nil ) textView.text = [textView.text stringByAppendingFormat:@ "service:%@\n" ,service]; } //读取电话多值 ABMultiValueRef phone = ABRecordCopyValue(person, kABPersonPhoneProperty); for ( int k = 0; k<ABMultiValueGetCount(phone); k++) { //获取电话Label NSString * personPhoneLabel = ( NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phone, k)); //获取該Label下的电话值 NSString * personPhone = ( NSString *)ABMultiValueCopyValueAtIndex(phone, k); textView.text = [textView.text stringByAppendingFormat:@ "%@:%@\n" ,personPhoneLabel,personPhone]; } //获取URL多值 ABMultiValueRef url = ABRecordCopyValue(person, kABPersonURLProperty); for ( int m = 0; m < ABMultiValueGetCount(url); m++) { //获取电话Label NSString * urlLabel = ( NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(url, m)); //获取該Label下的电话值 NSString * urlContent = ( NSString *)ABMultiValueCopyValueAtIndex(url,m); textView.text = [textView.text stringByAppendingFormat:@ "%@:%@\n" ,urlLabel,urlContent]; } //读取照片 NSData *image = ( NSData *)ABPersonCopyImageData(person); UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(200, 0, 50, 50)]; [myImage setImage:[UIImage imageWithData:image]]; myImage.opaque = YES ; [textView addSubview:myImage]; } CFRelease(results); CFRelease(addressBook); 本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3472867.html,如需转载请自行联系原作者