获取联系人列表"其他联系人"

时间:2014-08-06 10:55:09

标签: android android-contacts

我使用此代码获取手机上的联系人列表。

String[] PROJECTION = new String[] { 
        ContactsContract.RawContacts._ID, 
        ContactsContract.Contacts.DISPLAY_NAME,
        ContactsContract.Contacts.PHOTO_THUMBNAIL_URI,
        ContactsContract.CommonDataKinds.Email.DATA, 
        ContactsContract.CommonDataKinds.Photo.CONTACT_ID 
};

String order = "CASE WHEN " + ContactsContract.Contacts.DISPLAY_NAME + " NOT LIKE '%@%' THEN 1 ELSE 2 END, " 
        + ContactsContract.Contacts.DISPLAY_NAME + ", " + ContactsContract.CommonDataKinds.Email.DATA + " COLLATE NOCASE";

String filter = ContactsContract.CommonDataKinds.Email.DATA + " NOT LIKE ''";

Cursor cur = context.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, PROJECTION, filter, null, order);

if (cur.moveToFirst())
    do {
        Contact contact = new Contact(
                cur.getString(1), // Name
                cur.getString(3), // Email
                cur.getString(2)); // Photo

        if(contacts.indexOf(contact) == -1 && !contact.email.equals(Svc_Profil.getString(ProfilValues.email)))
            contacts.add(contact); 

    } while (cur.moveToNext());

cur.close();

这非常有效。问题是该列表包含用户的所有联系人,甚至包括"其他联系人"中的联系人。 (当您将邮件发送到未知的电子邮件地址时,Google会自动创建并完成此列表,即使您没有将此地址添加到您的联系人中)。

有人知道如何得不到这个"其他联系人"在结果?

提前谢谢。

0 个答案:

没有答案