Android查询所有联系人和根据号码查询联系人方法
16lz
2021-01-23
直接看例子:
package com.msg.util;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.content.Context;import android.database.Cursor;import android.provider.ContactsContract;public class ToolUtil {private Context context;public ToolUtil(Context context) {this.context = context;}public List<Map<String, String>> getContactList() {List<Map<String, String>> items = new ArrayList<Map<String, String>>();Cursor cur = null;try {// Query using ContentResolver.query or Activity.managedQuerycur = this.context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null,null);if (cur.moveToFirst()) {int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);// Iterate all usersdo {String contactId;String displayName;String phoneNumber = "";// Get the field valuescontactId = cur.getString(idColumn);displayName = cur.getString(displayNameColumn);// Get number of user's phoneNumbersint numberCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));if (numberCount > 0) {Cursor phones = this.context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId/* * + " and " + * ContactsContract.CommonDataKinds * .Phone.TYPE + "=" + * ContactsContract.CommonDataKinds * .Phone.TYPE_MOBILE */, null, null);if (phones.moveToFirst()) {int numberColumn = phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);// Iterate all numbersdo {phoneNumber += phones.getString(numberColumn)+ ",";} while (phones.moveToNext());}}// Add values to itemsMap<String, String> i = new HashMap<String, String>();i.put("name", displayName);i.put("key", phoneNumber);items.add(i);} while (cur.moveToNext());} else {Map<String, String> i = new HashMap<String, String>();i.put("name", "Your Phone");i.put("key", "Have No Contacts.");items.add(i);}} finally {if (cur != null)cur.close();}return items;}public String getPeople(String number) {String[] projection = { ContactsContract.PhoneLookup.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER };// 将自己添加到 msPeers 中Cursor cursor = this.context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,projection, // Which columns to return.ContactsContract.CommonDataKinds.Phone.NUMBER + " = '"+ number + "'", // WHERE clause.null, // WHERE clause value substitutionnull); // Sort order.if (cursor != null) {for (int i = 0; i < cursor.getCount(); i++){cursor.moveToPosition(i);// 取得联系人名字int nameFieldColumnIndex = cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME);String name = cursor.getString(nameFieldColumnIndex);// 这里提示// force// closereturn name;}}return "";}}
更多相关文章
- Android跳转系统联系人界面插入联系人 传真\地址\邮箱\职位\
- j2me to android 例子源码下载
- Android ListView例子详解
- Android开发-基本例子
- android 联系人数据库
- Android Contacts 联系人源码分析
- Android隐性Intent的例子
- Android联系人数据库全解析-2.0以上
- [转]Android选项卡(TabWidget)例子