从Android中的联系人处获取电子邮件

时间:2016-02-17 16:55:11

标签: android android-contacts contactscontract

我正在获取手机的所有联系人并在列表视图中显示它们。所有其他所需的详细信息都正确显示,但我在获取电子邮件地址时遇到问题。我有很多联系人,他们有与之关联的电子邮件地址,但它没有任何联系人的电子邮件地址。我已经将我的电子邮件查询与其他SO问题相匹配,我也有同样的查询。 我错过了什么吗?

这是我的查询

if(dataCursor.getString(dataCursor.getColumnIndex("mimetype")).equals(ContactsContract.CommonDataKinds.Email.DATA ) ) {
                            switch(dataCursor.getInt(dataCursor.getColumnIndex("data2"))){
                                case ContactsContract.CommonDataKinds.Email.TYPE_HOME :
                                    homeEmail = dataCursor.getString(dataCursor.getColumnIndex("data1"));
                                    break;
                                case ContactsContract.CommonDataKinds.Email.TYPE_WORK :
                                    workEmail = dataCursor.getString(dataCursor.getColumnIndex("data1"));
                                    break;
                            }
                        }

Cursor dataCursor = getContentResolver().query(dataUri, null,
                        ContactsContract.Data.CONTACT_ID + "=" + contactId,
                        null, null);

1 个答案:

答案 0 :(得分:0)

我发布的上述查询无效。我找到了另一个适合我的查询。

Cursor emails = getContentResolver().query(
                        ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                        null,
                        ContactsContract.CommonDataKinds.Email.CONTACT_ID
                                + " = " + contactId, null, null);
                while(emails.moveToNext()) {
                    String emailAddress = emails
                            .getString(emails
                                    .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
                }emails.close();