我怎样才能获得电子邮件地址

时间:2011-07-09 03:22:31

标签: android gmail

我正在使用这样的代码来使用内容提供商获取gmail电子邮件。我的问题是“fromAddress”字段包含发件人的姓名而不是发件人的电子邮件。例如,它将包含“John Doe”,但我想要“john.doe@somewhere.net”。

该字段中的名称是用户在其电子邮件客户端中设置的名称,它不是来自我的Android联系人。

这是我正在使用的代码:

ContentResolver resolver = context.getContentResolver();
cursor = resolver.query(Uri.parse("content://gmail-ls/conversations/myemail@gmail.com/", null, null, null, null);
cursor.moveToFirst();
String fromAddress = cursor.getString(cursor.getColumnIndexOrThrow("fromAddress")));
cursor.close();

我知道该电子邮件不在来自此URI的任何字段中。我尝试过这种URI:“content://gmail-ls/messages/myemail@gmail.com/39920384203052”,但它总是返回一个有0条记录的游标,用于有效的messageId。

请帮助我获取给定Gmail邮箱的发件人电子邮件...

谢谢!

2 个答案:

答案 0 :(得分:2)

开始结果活动

Intent intent = new new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);

startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);

OnActivityResult

Uri result = data.getData();  
String con = result.getLastPathSegment();
cursor = getContentResolver().query(Phone.CONTENT_URI,  
                    null, Phone.CONTACT_ID + "=?", new String[] { con },  
                    null);
int id = cursor.getColumnIndex(Phone.DATA);
if(cursor.moveToFirst()){
    String mail = cursor.getString(id);
    Log.e("Email", mail);
}

答案 1 :(得分:0)

我无法找到有关Android的GMail内容提供商的任何文档,但这可能对您有帮助。

打开一个HttpRequest对象并在此处发送 - https://mail.google.com/mail/feed/atom一旦您进行身份验证(标准HTTP身份验证),您就应该获得收件箱的XML Feed。

从那里你可以解析它。您要查找的字段是entry-> author-> email。

希望这有帮助!