android获取通讯录,现在已经获取到联系人手机号,怎么获取系统头像,

android获取通讯录,现在已经获取到联系人手机号,怎么获取系统头像,哪位大神会?教教我。


/**
 * @author renzhiqiang 获取手机联系人姓名,电话,邮箱,头像
 */
public class GetContacts {
 
    private static ArrayList<MyContacts> getAllContacts(Context context) {
 
        ArrayList<MyContacts> contacts = new ArrayList<MyContacts>();
 
        Cursor cursor = context.getContentResolver().query(
                ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        while (cursor.moveToNext()) {
 
            //新建一个联系人实例
            MyContacts temp = new MyContacts();
            String contactId = cursor.getString(cursor
                    .getColumnIndex(ContactsContract.Contacts._ID));
            String name = cursor.getString(cursor
                    .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
            temp.name = name;
            
            //获取联系人所有电话号
            Cursor phones = context.getContentResolver().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));
                temp.phones.add(phoneNumber);
            }
            phones.close();
            //获取联系人所有邮箱.
            Cursor emails = context.getContentResolver().query(
                    ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                    null,
                    ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = "
                            + contactId, null, null);
 
            while (emails.moveToNext()) {
                String email = emails
                        .getString(emails
                                .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
                temp.emails.add(email);
            }
            emails.close();
 
            // 获取联系人头像
            temp.photo = getContactPhoto(context, contactId,
                    R.drawable.ic_launcher);
            contacts.add(temp);
        }
        return contacts;
    }
 
    /**
     * 获取手机联系人头像
     *
     * @param c
     * @param personId
     * @param defaultIco
     * @return
     */
    private static Bitmap getContactPhoto(Context c, String personId,
            int defaultIco) {
        byte[] data = new byte[0];
        Uri u = Uri.parse("content://com.android.contacts/data");
        String where = "raw_contact_id = " + personId
                + " AND mimetype ='vnd.android.cursor.item/photo'";
        Cursor cursor = c.getContentResolver()
                .query(u, null, where, null, null);
        if (cursor.moveToFirst()) {
            data = cursor.getBlob(cursor.getColumnIndex("data15"));
        }
        cursor.close();
        if (data == null || data.length == 0) {
            return BitmapFactory.decodeResource(c.getResources(), defaultIco);
        } else
            return BitmapFactory.decodeByteArray(data, 0, data.length);
    }
}