android 获取本地联系人

public static Map<String,String> getAllCallRecords(Context context) { 
        Map<String,String> temp = new HashMap<String, String>(); 
        Cursor c = context.getContentResolver().query( 
                ContactsContract.Contacts.CONTENT_URI, 
                null, 
                null, 
                null, 
                ContactsContract.Contacts.DISPLAY_NAME 
                        + " COLLATE LOCALIZED ASC"); 
        if (c.moveToFirst()) { 
            do { 
                // 获得联系人的ID号 
                String contactId = c.getString(c 
                        .getColumnIndex(ContactsContract.Contacts._ID)); 
                // 获得联系人姓名 
                String name = c 
                        .getString(c 
                                .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
                // 查看该联系人有多少个电话号码。如果没有这返回值为0 
                int phoneCount = c 
                        .getInt(c 
                                .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 
                String number=null; 
                if (phoneCount > 0) { 
                    // 获得联系人的电话号码 
                    Cursor phones = context.getContentResolver().query( 
                            ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                            null, 
                            ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
                                    + " = " + contactId, null, null); 
                    if (phones.moveToFirst()) { 
                        number = phones 
                                .getString(phones 
                                .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
                        } 
                    phones.close(); 
                } 
                temp.put(name, number); 
            } while (c.moveToNext()); 
        } 
        c.close(); 
        return temp; 
    }


你可能感兴趣的:(android 获取本地联系人)