读取所有联系人

//读取所有联系人

-(void)ReadAllPeoples

{

//取得本地通信录名柄

ABAddressBookRef tmpAddressBook =
ABAddressBookCreate();

//取得本地所有联系人记录

NSArray* tmpPeoples = (NSArray*)ABAddressBookCopyArrayOfAllPeople(tmpAddressBook);

for(id tmpPerson
in tmpPeoples)

{

AddressList *item = [[AddressList
alloc]init];

//获取的联系人单一属性:First name

NSString* tmpFirstName = (NSString*)ABRecordCopyValue(tmpPerson,
kABPersonFirstNameProperty);

NSLog(@"First name:%@", tmpFirstName);

//获取的联系人单一属性:Last name

NSString* tmpLastName = (NSString*)ABRecordCopyValue(tmpPerson,
kABPersonLastNameProperty);

NSLog(@"Last name:%@", tmpLastName);

item.name = [NSString
stringWithFormat:@"%@%@",tmpLastName,tmpFirstName];

//获取的联系人单一属性:Generic phone number

ABMultiValueRef tmpPhones =
ABRecordCopyValue(tmpPerson,
kABPersonPhoneProperty);

for(NSInteger j =
0; j < ABMultiValueGetCount(tmpPhones); j++)

{

NSString* tmpPhoneIndex = (NSString*)ABMultiValueCopyValueAtIndex(tmpPhones, j);

NSLog(@"tmpPhoneIndex%d:%@", j, tmpPhoneIndex);

}

item.phone = tmpPhones;

[dataArray
addObject:item];

[tmpFirstName
release];

[tmpLastName
release];

CFRelease(tmpPhones);

}

//释放内存

[tmpPeoples
release];

CFRelease(tmpAddressBook);

}

时间: 2024-11-05 14:44:31

读取所有联系人的相关文章

手势识别=读取手机联系人=ContentResolver-Day3

手势识别=读取手机联系人=ContentResolverDay32 mobile3.0 手机设置向导页面完成 选择器没有做完成 样式提取完成 自定义控件的优化继续 抽取父类Activity 完成 手机读取联系人. 问题堆栈 自定义控件深入理解自定义ListView 是时候研究框架和设计XUtils4个模块 明天仔细研究窗口过度动画. 4. 手势控制GestureDetector 手势在Activity里面有一个onTouchEvent(MotionEvent event)方法,参数就是用户在屏幕

【android基础】读取系统联系人信息和添加一条联系人信息到通讯录

一,读取系统联系人信息 I,准备工作 同样,要读取系统联系人的数据库文件,首先要确定主机名和匹配规则. 我们将联系人的数据库文件导出来查看时,有下面几点需要知道: 1)联系人的数据,比如name,number,email都存储在data表的data1列. 2)区分不同联系人的列为raw_contact_id,它对应于raw_contacts表中的contact_id列 3)区分联系人数据类型的列位于mimetype列,其中1表示emial,5表示电话,7表示姓名. II,思路 读取联系人的信息,

android: 通过内容提供器读取系统联系人

读取系统联系人 由于我们之前一直使用的都是模拟器,电话簿里面并没有联系人存在,所以现在需要自 己手动添加几个,以便稍后进行读取.打开电话簿程序,界面如图 7.1 所示. 图   7.1 可以看到,目前电话簿里是没有任何联系人的,我们可以通过点击 Create a new contact按钮来对联系人进行创建.这里就先创建两个联系人吧,分别填入他们的姓名和手机号,如 图 7.2 所示. 图   7.2 这样准备工作就做好了,现在新建一个 ContactsTest 项目,让我们开始动手吧. 首先还是

Android 读取手机联系人、拨号、发送短信及长按菜单的操作

本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要用ListView列表控件展示手机联系人 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/a

读取系统联系人

读取联系人重要的权限: <uses-permission android:name="android.permission.READ_CONTACTS"/> //如果需要添加联系人,权限是write //代码 package com.example.readcontacts; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.conten

Android读取选择联系人的模版代码实现

1.创建SelectContactActivity类,在AndroidManifest.xml添加类 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.ContentResolver; import android.content.Intent;

旺仔:Content Provider读取手机联系人

//联系人信息 public void bt5_OnClick(View v) { //得到调用者 ContentResolver contentResolver=getContentResolver(); //准备URI // ContactsContract.Contacts.CONTENT_URI; //调用提供者 Cursor cursor=contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, n

Android读取系统联系人

使用 ContentProvider共享数据: 当应用继承 ContentProvider 类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.虽 然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外 共享数据,需要进行文件操作读写数据:采用 sharedpreferences 共享数据,需要使用 sharedpreferences API 读写数据.而使用 ContentProvider 共享数据的好处是 统一了数据访问方式 . 当

读取一个联系人的小细节

1) 删除一个联系人 并不是真正的删除掉!而是把他的contact_id为空: 以后手机联网的时候 可以恢复的: 2)代码如下: 判断id不为空就不会报错了: