`

管理联系人

阅读更多
通过Android系统提供的接口,可以很方便的管理联系人信息。

添加

添加联系人
1.6上的代码
String peopleName = "name";
ContentValues personValues = new ContentValues();
// name
personValues.put(Contacts.People.NAME, peopleName);
/* STARRED 0 = Contacts, 1 = Favorites */
personValues.put(Contacts.People.STARRED, 0);
Uri newPersonUri = Contacts.People.createPersonInMyContactsGroup(
	getContentResolver(), personValues);


2.1时需要用下面的代码才可以添加
String peopleName = "name";
ContentValues personValues = new ContentValues();
// name
personValues.put(Contacts.People.NAME, peopleName);
newPersonUri = getContentResolver().insert(People.CONTENT_URI, personValues);


添加电话号码
根据TYPE的不同,可以添加不同类型的电话号码。
1.6上支持的TYPE有:TYPE_CUSTOM,TYPE_FAX_HOME,TYPE_FAX_WORK,TYPE_HOME,TYPE_MOBILE,TYPE_OTHER,TYPE_PAGER,TYPE_WORK。
Uri uri = null;
ContentValues values = new ContentValues();

// add phone number
String tel = "86-21-65432100";

if (!AppUtils.isEmpty(tel)) {
	values.clear();
	uri = Uri.withAppendedPath(newPersonUri, Contacts.People.Phones.CONTENT_DIRECTORY);
	values.put(Contacts.Phones.TYPE, Contacts.Phones.TYPE_HOME);
	values.put(Contacts.Phones.NUMBER, tel);
	getContentResolver().insert(uri, values);
}


添加Email地址
通过改变KIND的值,可以添加不同的联系方式。
1.6支持KIND_EMAIL,KIND_IM,KIND_ORGANIZATION,KIND_PHONE,KIND_POSTAL
// add email address
String email = "abc@com.cn";

if (!AppUtils.isEmpty(email)) {
	values.clear();
	uri = Uri.withAppendedPath(newPersonUri, Contacts.People.ContactMethods.CONTENT_DIRECTORY);
	values.put(Contacts.ContactMethods.KIND, Contacts.KIND_EMAIL);
	values.put(Contacts.ContactMethods.DATA, email);
	values.put(Contacts.ContactMethods.TYPE, Contacts.ContactMethods.TYPE_WORK);
	getContentResolver().insert(uri, values);
}


添加公司和职务
// add company name & title
String company = "Google?";
String position= "CEO!!!";

if (!AppUtils.isEmpty(company) || !AppUtils.isEmpty(position)) {
	values.clear();
	uri = Uri.withAppendedPath(newPersonUri, Contacts.Organizations.CONTENT_DIRECTORY);

	// company name
	if (!AppUtils.isEmpty(company)) {
		values.put(Contacts.Organizations.COMPANY, companyNameText);
	}
				
	// position
	if (!AppUtils.isEmpty(position)) {
		values.put(Contacts.Organizations.TITLE, positionNameText);
	}

	values.put(Contacts.Organizations.TYPE, Contacts.Organizations.TYPE_WORK);
	getContentResolver().insert(uri, values);
}


查询

要实现查询功能,可能需要有点SQL的基础。

查询人名
// the contents want to get
String projection[] = new String[] { People._ID, People.NAME };
// the name to be found
String name = "find me";
// start search
Cursor cur = getContentResolver().query(People.CONTENT_URI, 
projection, // select sentence
People.NAME + " = ?", // where sentence
new String[] { name }, // where values
People.NAME); // order by

if (cur.moveToFirst()) {
	// get the results
	do {
		String id = cur.getString(cur.getColumnIndex(People._ID));
		String name = cur.getString(cur.getColumnIndex(People.NAME));
	} while (cur.moveToNext());
}

// close while finish
if (cur != null) {
	cur.close();
}


通过修改projection的内容,可以取得不同的内容。
如果要获得电话号码,就可以改成(id由上面的代码获得)
String phoneProjection[] = new String[] { Contacts.Phones.PERSON_ID, Contacts.Phones.NUMBER };

Cursor phoneCursor = getContentResolver().query(Contacts.Phones.CONTENT_URI, 
phoneProjection, // select
Contacts.Phones.PERSON_ID + " = " + id, // where (another style)
null, 
Contacts.Phones.DEFAULT_SORT_ORDER); // order

if (phoneCursor.moveToFirst()) {
	// get the results
	do {
		String phone = phoneCursor.getString(phoneCursor.getColumnIndex(Contacts.Phones.NUMBER));
	} while (phoneCursor.moveToNext());
}

// close while finish
if (phoneCursor != null) {
	phoneCursor.close();
}


如果要获得email地址,稍微麻烦点
String emailProjection[] = new String[] { Contacts.Phones.PERSON_ID, Contacts.ContactMethods.KIND, Contacts.ContactMethods.DATA };

Cursor emailCursor = getContentResolver().query(Contacts.ContactMethods.CONTENT_URI, 
emailProjection, // select
Contacts.ContactMethods.PERSON_ID + " = " + id, // where
null, 
Contacts.ContactMethods.DEFAULT_SORT_ORDER); // order

if (emailCursor.moveToFirst()) {
	do {
		int kind = emailCursor.getInt(emailCursor.getColumnIndex(Contacts.ContactMethods.KIND));
		if (Contacts.KIND_EMAIL == kind) {
			email = emailCursor.getString(emailCursor.getColumnIndex(Contacts.ContactMethods.DATA));
		}
	} while (emailCursor.moveToNext());
}

// close while finish
if (emailCursor != null) {
	emailCursor.close();
}


修改

删除
分享到:
评论

相关推荐

    Messenger怎么添加及管理联系人.docx

    **Messenger添加及管理联系人详解** Messenger是一款流行的即时通讯软件,允许用户与朋友、家人和同事保持联系。本文将详细讲解如何在Messenger中添加及管理联系人,以便更有效地进行在线交流。 ### 添加联系人 ...

    危险废物管理联系人授权委托书.pdf

    但是,我们可以围绕“危险废物管理联系人授权委托书”这一主题来构建相关知识点。 首先,危险废物管理是环境保护和公共安全的重要组成部分,涵盖了危险废物从产生、收集、运输、处理到处置的全生命周期。联系人授权...

    管理联系人通讯录——C#的

    本人是为初学者,但是精心写完的一个软件,如有出现bug希望见谅,多提建议用来管理联系人的软件,是C#语言,

    电脑基础知识收发邮件管理联系人.avi

    电脑基础知识收发邮件管理联系人

    管理联系人软件的用户须知

    管理联系人的软件,三个文件时一起,是为了您能更方便的使用,欢迎使用。

    通讯录 联系人信息管理系统

    5. 分类管理:系统可能支持对联系人进行分组或分类,例如家庭、工作、朋友等,方便用户按类别查看和管理联系人。 6. 导入导出功能:用户可以将现有的联系人数据导入到系统中,也可以将系统内的数据导出为常见的格式...

    联系人信息管理(asp.net)

    【标签】"ContactInfo"表明系统的焦点在于处理和管理联系人信息,可能包括联系人的姓名、电话、地址等字段。这些信息可能存储在一个名为"ContactInfo"的数据表中,每个记录对应一个联系人。 综合来看,这个联系人...

    联系人资料管理(单机版)

    《联系人资料管理(单机版)》是一款专为非专业客户管理人员设计的个人或小型团队用信息管理系统,旨在帮助用户高效地存储、检索和管理联系人的基本信息。系统设计简洁易用,尤其适合那些需要对个人客户或业务伙伴...

    联系人客户关系管理系统

    - 管理联系人与客户之间的互动记录,如沟通历史、交易详情等。 #### 四、需求分析 1. **理解需求**: - 系统需支持管理员、联系人和客户三种不同类型的用户角色。 - 管理员拥有最高权限,负责系统的日常维护和...

    通讯录管理系统 实现显示添加、删除、查询、显示分组和联系人

    通过将联系人按照工作、家庭、社交等类别进行分组,用户可以更方便地查找和管理联系人。实现这一功能需要在数据库设计时考虑分组字段,并在用户界面上提供创建、编辑和删除分组的选项。同时,系统还需要支持快速查询...

    一个联系人管理,包括分组

    这个名为“ContactsManager”的应用,正如其标题所示,是一个专门用于管理联系人的程序,它具有分组功能,使得用户能够更加有效地组织和访问他们的联系信息。 在Android操作系统中,联系人管理是系统自带的一项功能...

    Python3项目开发AI智能联系人管理的程序

    随着信息技术的飞速发展,个人及企业对于高效管理联系人的需求日益增长。传统的联系人管理方式已经无法满足当前的需求,因此开发一个集成了AI技术的智能联系人管理系统具有重要的实际应用价值。该系统能够帮助用户更...

    联系人管理器

    11. **集成其他服务**:联系人管理器可能还集成了其他实用功能,如日历提醒、邮件发送、通话记录等,使得管理联系人更加便捷。 总之,联系人管理器通过其全面的功能和用户友好的设计,成为了人们日常生活和工作中不...

    C#oop集合 联系人管理

    C#中的`List<T>`、`Dictionary, TValue>`等泛型集合类会用于存储和管理联系人和分组。例如,我们可以使用`List<Contact>`来保存所有的联系人,使用`Dictionary, List<Contact>>`来存储分组及其对应的联系人列表。 ...

    手机联系人重名管理

    手机联系人备份后恢复,你会发现同名的联系人有好几个,如何合并重复的同名联系人,我找了好久,才发现这款管理联系人神器,高兴之余,拿来与大家分享,因为没有下载积分了,所以就不免费给大家了。试过后一定要认真...

    基于python的智能联系人管理系统.rar

    在信息技术日益发达的今天,个人和企业对高效管理联系人的需求越来越大。Python作为一种强大、易学且用途广泛的编程语言,被广泛应用于各种领域,包括开发联系人管理系统。本系统是利用Python的灵活性和便利性设计的...

    学生个人信息管理系统代码及报告.zip

    日程安排:可以记录重要日程 dates 通知管理:可以管理学校/班级重要通知 notice ...名片管理:管理联系人的联系信息 member 记账管理:记录每笔开销/收入的信息 account  Servlet & Jsp 及Java Web基础技术  JDBC

    C#联系人管理系统源码+毕设参考

    C#联系人管理系统基于根据用户的电话号码、地址、职位、公司等管理联系人的概念。这个项目用于存储在办公室工作的个人的个人信息。对于公司或组织来说,这是一个非常有用的项目,可以存储他们的员工详细信息。 关于...

    C# 联系人 管理系统

    一个联系人管理系统的核心是存储和管理联系人信息。通常,我们会选择关系型数据库如SQLite、MySQL或SQL Server来存储数据。在C#中,可以使用ADO.NET库进行数据库操作,包括连接数据库、执行SQL语句(如INSERT、...

Global site tag (gtag.js) - Google Analytics