按名称获取联系人的电子邮件 [英] Getting contact email by name

查看:220
本文介绍了按名称获取联系人的电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直试图让电子邮件通过其名称接触,但坚持了一些difficultes。
这里是我在努力做到这一点:

I've been trying to get email for contact by its name, but stuck with some difficultes. here is how I am trying to do this:

    Cursor emailCur = cr.query(
            ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
            ContactsContract.CommonDataKinds.Email.DISPLAY_NAME + " = ?",
            new String[] { contactName }, null);
    while (emailCur.moveToNext()) {
        String email = emailCur
                .getString(emailCur
                        .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
        String emailType = emailCur
                .getString(emailCur
                        .getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
                }
    emailCur.close();

我不断地得到一个异常,我究竟做错了什么?

I constantly get an exception, what am I doing wrong?

现在我正零重复我的游标循环中。

Now I am getting zero iteration of my cursor loop.

推荐答案

查询电子邮件地址类似于电话号码。必须执行查询,从数据库中获取电子邮件地址。查询URI存储在ContactsContract.CommonDataKinds.Email.CONTENT_URI查询电子邮件地址表中。

Querying email addresses is similar to phone numbers. A query must be performed to get email addresses from the database. Query the URI stored in ContactsContract.CommonDataKinds.Email.CONTENT_URI to query the email address table.

 Cursor emailCur = cr.query( 
    ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
    null,
    ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", 
    new String[]{id}, null); 
while (emailCur.moveToNext()) { 
    // This would allow you get several email addresses
        // if the email addresses were stored in an array
    String email = emailCur.getString(
                  emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
    String emailType = emailCur.getString(
                  emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); 
} 
emailCur.close();

由于与电话查询的电子邮件的表中的字段名称也被存储下ContactsContract.CommonDataKinds。电子邮件查询的URI在ContactsContract.CommonDataKinds.Email.CONTENT_URI进行,WHERE子句必须匹配ContactsContract.CommonDataKinds.Email.CONTACT_ID领域。由于多个电子邮件地址可以通过光标返回的记录存储循环。

As with the phone query the field names for the email table are also stored under ContactsContract.CommonDataKinds. The email query is performed on the URI in ContactsContract.CommonDataKinds.Email.CONTENT_URI and the WHERE clause has to match the ContactsContract.CommonDataKinds.Email.CONTACT_ID field. Since multiple email addresses can be stored loop through the records returned in the Cursor.

更多教程这里

这篇关于按名称获取联系人的电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆