ios 开发,通讯录信息调用常用方法,这个比较全,不用再整理了;

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