按名称获取联系人的电子邮件 [英] Getting contact email by name
问题描述
我一直试图让电子邮件通过其名称接触,但坚持了一些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屋!