在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → android 获取系统自带通讯录信息 例子源码

android 获取系统自带通讯录信息 例子源码

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:8.13M
  • 下载次数:27
  • 浏览次数:332
  • 发布时间:2014-09-10
  • 实例类别:Android平台开发
  • 发 布 人:finger
  • 文件格式:.zip
  • 所需积分:2
 相关标签: Android 通讯录

实例介绍

【实例简介】
【实例截图】

【核心代码】

package com.androidbook.getInfoFromContact;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;

public class GetInfoFromContact extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		// 可以对系统自带通讯录中的信息进行操作
	}

	// 对系统自带通讯录进行插入
	public void insert(ContentValues values) {
		getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
	}

	// 对系统自带通讯录进行删除
	public void delete(String where, String[] selectionArgs) {
		getContentResolver().delete(ContactsContract.Data.CONTENT_URI, where,
				selectionArgs);
	}

	// 对系统自带通讯录进行修改
	public void update(String where, String[] selectionArgs,
			ContentValues values) {

		getContentResolver().update(ContactsContract.Data.CONTENT_URI, values,
				where, selectionArgs);
	}

	// 对系统自带通讯录进行查询并获取所有信息
	public void query(String[] projection, String selection,
			String[] selectionArgs, String sortOrder, ContentValues values) {

		String name, email, remark, company, zipcode;
		
		// 指向一个用户表的光标
		Cursor systemPhoneCursor = getContentResolver().query(
				ContactsContract.Data.CONTENT_URI, projection, selection,
				selectionArgs, sortOrder);

		for (systemPhoneCursor.moveToFirst(); !systemPhoneCursor.isAfterLast(); systemPhoneCursor
				.moveToNext()) {
			// 获得联系人的id
			int id = systemPhoneCursor.getInt(systemPhoneCursor
					.getColumnIndex(ContactsContract.Data.RAW_CONTACT_ID));
			// 根据MIMETYPE字段不同来判别数据的类型
			String type = systemPhoneCursor.getString(systemPhoneCursor
					.getColumnIndex(ContactsContract.Data.MIMETYPE));
			// 获得联系人姓名
			name = systemPhoneCursor.getString(systemPhoneCursor
					.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
			// 判别type为邮箱的数据类型,获得联系人Email
			if (type.equals(ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)) {
				email = systemPhoneCursor
						.getString(systemPhoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA1));

			} else if (type
					.equals(ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE)) {
				// 判别type为备注的数据类型,获得联系人备注
				remark = systemPhoneCursor
						.getString(systemPhoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE));
			} else if (type
					.equals(ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE)) {
				// 判别type为公司的数据类型, 获得联系人公司
				company = systemPhoneCursor
						.getString(systemPhoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.Organization.COMPANY));

			} else if (type
					.equals(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)) {
				// 判别type为地址邮编的数据类型, 获得联系人的地址与邮编
				// 获得国家
				String country = systemPhoneCursor
						.getString(systemPhoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
				// 获得城市
				String city = systemPhoneCursor
						.getString(systemPhoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
				// 获得街道
				String street = systemPhoneCursor
						.getString(systemPhoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
				// 获得邮编
				zipcode = systemPhoneCursor
						.getString(systemPhoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
				// 获得地址类型
				int addressType = systemPhoneCursor
						.getInt(systemPhoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE));

				switch (addressType) {
				// 为单位地址
				case ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK:

					break;
				// 为家庭地址
				case ContactsContract.CommonDataKinds.StructuredPostal.TYPE_HOME:
					break;
				// 为其他地址
				case ContactsContract.CommonDataKinds.StructuredPostal.TYPE_OTHER:
					break;
				}
			} else if (type
					.equals(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)) {
				// 判别type为电话号码的数据类型,获得号码
				// 获得号码
				String phoneNumber = systemPhoneCursor
						.getString(systemPhoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
				// 获得号码的类型
				int phoneType = systemPhoneCursor
						.getInt(systemPhoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
				switch (phoneType) {
				case ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE:
					// 手机号码类型
					break;
				case ContactsContract.CommonDataKinds.Phone.TYPE_HOME:
					// 家庭电话
					break;
				case ContactsContract.CommonDataKinds.Phone.TYPE_WORK:
					// 单位号码
					break;
				case ContactsContract.CommonDataKinds.Phone.TYPE_OTHER:
					// 其他号码
					break;
				case ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK:
					// 传真号码
					break;
				}
			} else if (type
					.equals(ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)) {

				// 判别type为头像的数据类型, 获得头像
				byte[] photoByte = systemPhoneCursor
						.getBlob(systemPhoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.Photo.PHOTO));
			}
		}
	}
}

标签: Android 通讯录

实例下载地址

android 获取系统自带通讯录信息 例子源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警