`

ContactsContract获取联系人信息及双向查找联系人信息

 
阅读更多

添加权限:

 

<uses-permission
		android:name="android.permission.READ_CONTACTS"></uses-permission>
 

 

try {
			/* 必须要有android.permission.READ_CONTACTS权限 */
			Cursor cursor = managedQuery(
					android.provider.ContactsContract.Contacts.CONTENT_URI,
					null, null, null, null);
			/* 将Cursor移到资料最前端 */
			for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor
					.moveToNext()) {

				/* 取得联络人的姓名 */
				String strName = cursor
						.getString(cursor
								.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
				/* 取得联络人的电话 */
				int contactId = cursor.getInt(cursor
						.getColumnIndex(ContactsContract.Contacts._ID));
				Cursor phones = getContentResolver().query(
						ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
						null,
						ContactsContract.CommonDataKinds.Phone.CONTACT_ID
								+ " = " + contactId, null, null);
				int typePhone, resType;
				String numPhone;
				if (phones.getCount() > 0) {
					phones.moveToFirst();
					/* 2.0可以允许User设定多组电话号码,但本范例只捞一组电话号码作示范 */
					typePhone = phones
							.getInt(phones
									.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
					numPhone = phones
							.getString(phones
									.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
					resType = ContactsContract.CommonDataKinds.Phone
							.getTypeLabelResource(typePhone);
					addItem(strName, getString(resType) + ":" + numPhone);//添加到ListView中,此代码略去
				}

			}
		} catch (Exception e) {
			e.printStackTrace();
		}


 

根据号码查找联系人

 

 

public String getContactPeople(String incomingNumber) {
		
		String contactPeople = "";
		
		ContentResolver contentResolver = getContentResolver();
		Cursor cursor = null;

		/* cursor里要放的字段名称 */
		String[] projection = new String[] { ContactsContract.Contacts._ID,
				ContactsContract.Contacts.DISPLAY_NAME,
				ContactsContract.CommonDataKinds.Phone.NUMBER };

		/* 用来电电话号码查找该联系人 */
		cursor = contentResolver.query(
				ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection,
				ContactsContract.CommonDataKinds.Phone.NUMBER + "=?",
				new String[] { incomingNumber }, "");

		/* 找不到联系人 */
		if (cursor.getCount() == 0) {
			contactPeople = "未知联系人";
		} else if (cursor.getCount() > 0) {
			cursor.moveToFirst();
			/* projection这个数组里 */
			contactPeople = cursor.getString(1);
		}
		
		return contactPeople;

	}

根据联系人查找号码

/* 以联系人名称搜索通信录中联系人的电话的method */
	private String getContactPeople(String name) {
		String result = "";
		ContentResolver contentResolver = EX06_23.this.getContentResolver();
		Cursor cursor = null;

		/* 要搜索的字段名称 */
		String[] projection = new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER };

		/* 以联系人的名字去找该联系人的电话 */
		cursor = contentResolver.query(
				ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection,
				ContactsContract.Contacts.DISPLAY_NAME + "=?",
				new String[] { name }, "");

		if (cursor.getCount() != 0) {
			cursor.moveToFirst();
			/* 取得联系人电话 */
			result = cursor.getString(0);
		}
		return result;
	}
  • 大小: 21.8 KB
分享到:
评论
1 楼 a13525177343 2013-01-05  
楼主代码很简练清晰,顶一个

相关推荐

    android中ContactsContract获取联系人的方法

    NULL 博文链接:https://zymic.iteye.com/blog/737643

    Android2.0 中读取联系人——ContactsContract

    android的SDK做了调整,相应的读取联系人资料有了变化。 这里提供的是如何在2.0包括2.1中读取联系人资料的代码

    ContactsContract读取联系人的异步方法

    NULL 博文链接:https://zymic.iteye.com/blog/737681

    Android-ContactsContract联系人增删改查

    Android-ContactsContract联系人增删改查

    android查询手机联系人

    要读取联系人信息,可以使用 ContentResolver 的 query 方法来查询 ContactsContract.Contacts.CONTENT_URI,从而获取联系人信息。例如: ```java Cursor cursor = this.getContext().getContentResolver().query...

    Android获取手机联系人信息

    Android如何获取手机联系人信息,本文为大家揭晓。 获取手机联系人信息步骤: 1、获取 ContentResolver ContentResolver resolver = getContentResolver(); 2、resolver.query(*)查询信息 查询手机联系人的URI...

    Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面.

    Android Intent 跳转到系统应用中的拨号界面、联系人界面、短信界面 在 Android 开发中,Intent 是一个非常重要的概念,它允许不同的应用程序之间进行交互和通信。在本文中,我们将探讨如何使用 Intent 跳转到系统...

    Android获取手机联系人的方法

    Android 获取系统联系人信息的实例 一、获取手机联系人姓名及手机号 //跳转到系统联系人应用 Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); try { ...

    手机联系人android原生代码

    这个是android系统原生代码中的联系人代码,在源代码的packages文件夹下,需要做联系人相关工作的同仁们,可以解压后看一看,同时,附赠上一个博客链接http://blog.csdn.net/Kafka_88/article/details/50670406 ...

    Android获取联系人头像的方法

    本文实例讲述了Android获取联系人头像的方法。分享给大家供大家参考,具体如下: public byte[] getPhoto(String people_id) { String photo_id = null; String selection1 = ContactsContract.Contacts._ID + = + ...

    Android实现获取联系人电话号码功能

    本篇文档主要记录一下获取联系人的电话号码的一种方式。 1、选择联系人 ............ //构造一个隐式的Intent,拉起联系人界面 final Intent pickIntent = new Intent(Intent.ACTION_PICK, ContactsContract....

    android获取联系人示例分享

    import java.util.ArrayList;import java.util.HashMap; import android.app.Activity;import android.database....import android.provider.ContactsContract.CommonDataKinds.Phone;import android.widget.ListVie

    android实现读取、搜索联系人的代码

    //读取联系人 public static Uri CONTACTSURI = ContactsContract.Contacts.CONTENT_URI;//联系人  public static void getContactsInfo(Context context,String tag){  String[] projections = new String[]{...

    Android控件ListView用法(读取联系人示例代码)

    示例代码: 这是一个读取联系人的代码: 代码如下: package com.ui.domain; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.database.Cursor; import android....

    android手机通讯录备份还原代码

    最近想写段android程序玩玩。 开发环境 eclipse ,android2.2 ...1.把通讯录中的联系人,电话号码保存到txt文件中完成备份。 2.读取txt文件,导入到通讯录完成还原。 具体代码 1.添加 通讯录读写权限,存储卡写权限 ...

    Android 向所有用户的手机发送短信.rar

     ContactsContract.CommonDataKinds.Phone.NUMBER));//获取所有电话号码  String phoneTpye = phones.getString(phones.getColumnIndex(  ContactsContract.CommonDataKinds.Phone.TYPE));//获取电话号码类型 ...

    package com.example.f1_telephone;

    //取得联系人名字 int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME); String contact = cursor.getString(nameFieldColumnIndex); //取得电话号码 String ContactId = cursor....

    Android代码-一个onActivityForResult handlers的方便注解

    pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST); } @Override protected void onActivityResult(int ...

    android sdk 自带 实例(samples)

    An application that demonstrates how to query the system contacts provider using the ContactsContract API, as well as insert contacts into a specific account. Home A home screen replacement ...

    The Busy Coders Guide to Android Development最终版2019

    The ContactsContract and CallLog Providers The CalendarContract Provider The MediaStore Provider Consuming Documents Providing Documents Encrypted Storage Packaging and Distributing Data Advanced ...

Global site tag (gtag.js) - Google Analytics