添加权限:
<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
分享到:
相关推荐
NULL 博文链接:https://zymic.iteye.com/blog/737643
android的SDK做了调整,相应的读取联系人资料有了变化。 这里提供的是如何在2.0包括2.1中读取联系人资料的代码
NULL 博文链接:https://zymic.iteye.com/blog/737681
Android-ContactsContract联系人增删改查
要读取联系人信息,可以使用 ContentResolver 的 query 方法来查询 ContactsContract.Contacts.CONTENT_URI,从而获取联系人信息。例如: ```java Cursor cursor = this.getContext().getContentResolver().query...
Android如何获取手机联系人信息,本文为大家揭晓。 获取手机联系人信息步骤: 1、获取 ContentResolver ContentResolver resolver = getContentResolver(); 2、resolver.query(*)查询信息 查询手机联系人的URI...
Android Intent 跳转到系统应用中的拨号界面、联系人界面、短信界面 在 Android 开发中,Intent 是一个非常重要的概念,它允许不同的应用程序之间进行交互和通信。在本文中,我们将探讨如何使用 Intent 跳转到系统...
Android 获取系统联系人信息的实例 一、获取手机联系人姓名及手机号 //跳转到系统联系人应用 Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); try { ...
这个是android系统原生代码中的联系人代码,在源代码的packages文件夹下,需要做联系人相关工作的同仁们,可以解压后看一看,同时,附赠上一个博客链接http://blog.csdn.net/Kafka_88/article/details/50670406 ...
本文实例讲述了Android获取联系人头像的方法。分享给大家供大家参考,具体如下: public byte[] getPhoto(String people_id) { String photo_id = null; String selection1 = ContactsContract.Contacts._ID + = + ...
本篇文档主要记录一下获取联系人的电话号码的一种方式。 1、选择联系人 ............ //构造一个隐式的Intent,拉起联系人界面 final Intent pickIntent = new Intent(Intent.ACTION_PICK, ContactsContract....
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
//读取联系人 public static Uri CONTACTSURI = ContactsContract.Contacts.CONTENT_URI;//联系人 public static void getContactsInfo(Context context,String tag){ String[] projections = new String[]{...
示例代码: 这是一个读取联系人的代码: 代码如下: package com.ui.domain; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.database.Cursor; import android....
最近想写段android程序玩玩。 开发环境 eclipse ,android2.2 ...1.把通讯录中的联系人,电话号码保存到txt文件中完成备份。 2.读取txt文件,导入到通讯录完成还原。 具体代码 1.添加 通讯录读写权限,存储卡写权限 ...
ContactsContract.CommonDataKinds.Phone.NUMBER));//获取所有电话号码 String phoneTpye = phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.TYPE));//获取电话号码类型 ...
//取得联系人名字 int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME); String contact = cursor.getString(nameFieldColumnIndex); //取得电话号码 String ContactId = cursor....
pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST); } @Override protected void onActivityResult(int ...
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 ContactsContract and CallLog Providers The CalendarContract Provider The MediaStore Provider Consuming Documents Providing Documents Encrypted Storage Packaging and Distributing Data Advanced ...