【问题标题】:How can I get email address我怎样才能得到电子邮件地址
【发布时间】:2011-07-09 03:22:30
【问题描述】:

我正在使用这样的代码通过内容提供商获取 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 电子邮件的发件人电子邮件...

谢谢!

【问题讨论】:

    标签: android gmail


    【解决方案1】:

    为结果启动一个活动

    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);
    }
    

    【讨论】:

      【解决方案2】:

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

      打开一个 HttpRequest 对象并将其发送到这里 - https://mail.google.com/mail/feed/atom 一旦您进行了身份验证(标准 HTTP 身份验证),那么您应该会获得收件箱的 XML 提要。

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

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2013-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-18
        • 2014-06-23
        • 2011-06-30
        • 1970-01-01
        • 2023-02-17
        相关资源
        最近更新 更多