获取本地通讯录的所有联系人的信息
来源:互联网 发布:苹果怎样申请网站域名 编辑:程序博客网 时间:2024/06/05 10:22
//获取本地通讯录的所有联系人的信息:
-(void)showAllPeopleContacts
{
ABAddressBookRef ab=ABAddressBookCreate();
NSArray *arrTemp=(NSArray *)ABAddressBookCopyArrayOfAllPeople(ab);
NSMutableArray *arrContact=[[NSMutableArrayalloc]init];
for (int i=0;i<[arrTempcount];i++)
{
NSMutableDictionary *dicContact=[[NSMutableDictionaryalloc]init];
/*first name*/
NSString *firstName=(NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonFirstNameProperty);
NSLog(@"firstName=%@",firstName);
/*last name*/
NSString *lastName = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonLastNameProperty);
NSLog(@"lastName=%@",lastName);
/*middle name*/
NSString *middleName = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonMiddleNameProperty);
/*读取prefix前缀*/
NSString *prefix = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonPrefixProperty);
/*读取suffix后缀*/
NSString *suffix = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonSuffixProperty);
/*读取nickname*/
NSString *nickname = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonNicknameProperty);
/*读取firstname拼音*/
NSString *firstnamePhonetic = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonFirstNamePhoneticProperty);
/*读取lastname拼音音标*/
NSString *lastnamePhonetic = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonLastNamePhoneticProperty);
/*读取middlename拼音音标*/
NSString *middlenamePhonetic = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonMiddleNameProperty);
/*读取organization公司*/
NSString *organization = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonOrganizationProperty);
/*读取jobtitle工作*/
NSString *jobtitle = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonJobTitleProperty);
/*读取department部门*/
NSString *department = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonDepartmentProperty);
/*读取备忘录note*/
NSString *note = (NSString *)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonNoteProperty);
/*读取birthday生日*/
NSDate *birthday = (NSDate*)ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonBirthdayProperty);
/*第一次添加该条记录得时间*/
// NSString *firstKnow = (NSString *)ABRecordCopyValue([arrTemp objectAtIndex:i], kABPersonCreationDateProperty);
/*最后一次修改该条记录得时间*/
// NSString *lastKnow = (NSString *)ABRecordCopyValue([arrTemp objectAtIndex:i], kABPersonModificationDateProperty);
//获取email多值
// ABMultiValueRef email = ABRecordCopyValue([arrTemp objectAtIndex:i], kABPersonEmailProperty);
// for (int x=0; x<ABMultiValueGetCount(email); x++) {
// //获取email label
// NSString *emailLabel = (NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(email, x));
// NSLog(@"emailLabel=%@",emailLabel);
//
// //获取email值
// NSString *emailContent = (NSString *)ABMultiValueCopyValueAtIndex(email, x);
// }
//读取电话多值
ABMultiValueRef phone =ABRecordCopyValue([arrTempobjectAtIndex:i],kABPersonPhoneProperty);
//临时Dictionary用来存放电话多值
NSMutableDictionary *dicPhone=[[NSMutableDictionaryalloc]init];
for (int k =0; k<ABMultiValueGetCount(phone); k++)
{
//获取电话Label如:mobile,iPhone,etc
NSString * personPhoneLabel = (NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phone, k));
NSLog(@"personPhoneLabel=%@",personPhoneLabel);
//获取該Label下的电话值
NSString * personPhone = (NSString*)ABMultiValueCopyValueAtIndex(phone, k);
NSLog(@"personPhone=%@",personPhone);
*** [dicPhonesetObject:personPhoneforKey:personPhoneLabel];***important
}
@try
{
if (firstName !=nil) {
[dicContactsetObject:firstNameforKey:@"firstname"];
}
if(lastName !=nil){
[dicContactsetObject:lastNameforKey:@"lastname"];
}
if(middleName !=nil){
[dicContactsetObject:middleNameforKey:@"middleName"];
}
if(prefix !=nil){
[dicContactsetObject:prefixforKey:@"prefix"];
}
if(suffix !=nil){
[dicContactsetObject:suffixforKey:@"suffix"];
}
if(nickname !=nil){
[dicContactsetObject:nicknameforKey:@"nickName"];
}
if(firstnamePhonetic !=nil){
[dicContactsetObject:firstnamePhoneticforKey:@"firstnamePhonetic"];
}
if(lastnamePhonetic !=nil){
[dicContactsetObject:lastnamePhoneticforKey:@"lastnamePhonetic"];
}
if(middlenamePhonetic !=nil){
[dicContactsetObject:middlenamePhoneticforKey:@"middlenamePhonetic"];
}
if(organization !=nil){
[dicContactsetObject:organizationforKey:@"organization"];
}
if(jobtitle !=nil){
[dicContactsetObject:jobtitleforKey:@"jobtitle"];
}
if(department !=nil){
[dicContactsetObject:departmentforKey:@"department"];
}
if(note!=nil){
[dicContactsetObject:noteforKey:@"note"];
}
if (birthday !=nil) {
[dicContactsetObject:birthdayforKey:@"birthday"];
}
//add多值字段
if (dicPhone !=nil) {
[dicContactsetObject:dicPhoneforKey:@"phone"];--添加多值Dictionary到总的Dictionary
}
//[dicContact setObject:dicPhone forKey:@"phone"];
// [dicContact setObject:firstKnow forKey:@"firstKnow"];
// [dicContact setObject:lastKnow forKey:@"lastKnow"];
}
@catch (NSException * e) {
[dicContactrelease];
continue;
}
[arrContact addObject:dicContact];
//[arrContact addObject:dicPhone];
//nsuinteger ==> nsstring
NSString *localcount = [NSStringstringWithFormat:@"%d",[arrContactcount]];
NSLog(@"localcount=%@",localcount);
self.localCounts.text = localcount;
//写入数据到目录下面:
[dicContact release];
[dicPhone release];
}
[selfwriteToFile:arrContact];
[selfgo];
//[self readFromPath];
}
- 获取本地通讯录的所有联系人的信息
- 获取通讯录中所有联系人的信息
- Android 查询本地通讯录联系人的信息
- 获取通讯录中联系人的所有属性
- ios开发之获取手机通讯录中所有联系人的信息二
- 使用ContentProvider获取联系人的所有信息
- Android获取本地通讯录发生变化的联系人
- iOS 获取通讯录中联系人的所有属性
- iOS 获取通讯录中联系人的所有属性
- 小胖说事39-----iOS 获取通讯录中联系人的所有属性
- 获取手机中通讯录的所有信息
- 获取通讯录联系人信息
- Android:获取手机通讯录中联系人的信息
- 【Android】【小记】获取系统通讯录的联系人信息
- Android软件开发之获取通讯录联系人信息 + android联系人信息的存储结构 + Android联系人读取操作笔记
- Android软件开发之获取通讯录联系人信息 + android联系人信息的存储结构 + Android联系人读取操作笔记
- Android软件开发之获取通讯录联系人信息 + android联系人信息的存储结构 + Android联系人读取操作笔记
- Android软件开发之获取通讯录联系人信息 + android联系人信息的存储结构 + Android联系人读取操作笔记
- 分析QQ.exe资源目录结构
- WinCE的API函数WriteFile和ReadFile函数
- 总想说点儿让人拍案叫绝的设计
- 如何学习Windows Phone开发
- 封装自己的控件库:iPhone静态库的应用
- 获取本地通讯录的所有联系人的信息
- 关于fushioncharts的Column2d美化图
- 总想说点儿让人拍案叫绝的设计
- GridView(九宫图)的使用介绍
- Ubuntu 12.04安装Java 7
- Linux触发连锁反应,惠及全球
- Oracle BAM RKM reversing 问题
- input子系统详解
- devexpress grid导出为pdf文件时出现 中文乱码的解决方案