首页 > Android > 笔记 > 正文

android根据电话号码查询联系人名称,导出通讯录所有联系人的方法

2016-09-23 笔记 3207 ℃ 0 评论
/*
 * 根据电话号码取得联系人姓名
 */
public static String getContactNameByPhoneNumber(Context context, String address) {
    String[] projection = { ContactsContract.PhoneLookup.DISPLAY_NAME,
            ContactsContract.CommonDataKinds.Phone.NUMBER };

    // 将自己添加到 msPeers 中
    Cursor cursor = context.getContentResolver().query(
            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
            projection, // Which columns to return.
            ContactsContract.CommonDataKinds.Phone.NUMBER + " = '"
                    + address + "'", // WHERE clause.
            null, // WHERE clause value substitution
            null); // Sort order.

    if (cursor == null) {
        Log.d(TAG, "getPeople null");
        return 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);
        return name;
    }
    return null;
}

/**
 * 获取所有联系人内容
 * @param context
 * @param address
 * @return
 */
public static String getContacts(Context context) {
    StringBuilder sb = new StringBuilder();
    
    ContentResolver cr = context.getContentResolver();
    Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
            null, null, null);

    if (cursor.moveToFirst()) {
        do {
            String contactId = cursor.getString(cursor
                    .getColumnIndex(ContactsContract.Contacts._ID));
            String name = cursor
                    .getString(cursor
                            .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
            //第一条不用换行
            if(sb.length() == 0){
                sb.append(name);
            }else{
                sb.append("\n" + name);
            }
            
            Cursor phones = cr.query(
                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                    null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                            + " = " + contactId, null, null);
            while (phones.moveToNext()) {
                String phoneNumber = phones
                        .getString(phones
                        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                // 添加Phone的信息
                sb.append("\t").append(phoneNumber);
                
            }
            phones.close();
            
        } while (cursor.moveToNext());
    }
    cursor.close();
    return sb.toString();
    }

猜你喜欢

日历
«    2024年3月    »
123
45678910
11121314151617
18192021222324
25262728293031
标签列表
最近发表
友情链接