android 号码查联系人,Android 查询联系人姓名和号码

package com.iban.dao;

import java.util.ArrayList;

import java.util.List;

import com.iban.pojo.User;

import android.content.ContentResolver;

import android.content.Context;

import android.database.Cursor;

import android.provider.ContactsContract;

public class ContactUtil {

public static void getContact(Context context){

ContentResolver cr = context.getContentResolver();

Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);//查询通讯录

if(cursor.getCount()>0){

while (cursor.moveToNext()) {

String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));//联系人id

String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));//联系人名称

System.out.println("name:"+name);

if(cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))>0){

//Query phone here. Covered next 在该处查询电话号码

Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",

new String[]{id}, null);

while (pCur.moveToNext()) {

// Do something with phones

String phoneNumber = pCur.getString(pCur .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

System.out.println("number:"+phoneNumber);

}

pCur.close();

}

}

}

}

public List getUsers( Context context){

List listUser = new ArrayList();

ContentResolver resolver = context.getContentResolver();

String phoneNumber = "";

// 获得所有的联系人

Cursor cur = resolver.query(

ContactsContract.Contacts.CONTENT_URI, null, null,null,

ContactsContract.Contacts.DISPLAY_NAME

+ " COLLATE LOCALIZED ASC");

// 循环遍历

if (cur.moveToFirst()) {

User user = new User();

int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);

int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);

do {

String contactId = cur.getString(idColumn);

System.out.println("contactId:"+contactId);

// 获得联系人姓名

String disPlayName = cur.getString(displayNameColumn);

user.setUserName(disPlayName);

System.out.println("disPlayName:"+disPlayName);

// 查看该联系人有多少个电话号码。如果没有这返回值为0

int phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));

if (phoneCount > 0) {

// 获得联系人的电话号码

Cursor phones = resolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID

+ " = " + contactId, null, null);

if (phones.moveToFirst()) {

do {

// 遍历所有的电话号码

int id = phones.getInt(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID));

phoneNumber = phones

.getString(phones

.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

} while (phones.moveToNext());

}

}

System.out.println("phoneNumber:"+phoneNumber);

user.setPhoneNumber(phoneNumber);

} while (cur.moveToNext());

}

return listUser;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值