如何获取存储在设备中的用户自己的电子邮件地址?

时间:2011-02-26 09:52:59

标签: android email device email-client

我需要检索存储在设备中的用户的所有电子邮件地址(不是他朋友的电子邮件地址,而是他的OWN电子邮件地址)。 例如,如果我有三个邮件地址geltrude@gmail.com,geltry @ yahoo.co.uk和cippalippa@hotmail.com,我正在寻找一个方法,返回一个数组(或类似)与这三个字符串: [“geltrude@gmail.com”,“geltry @ yahoo.co.uk”,“cippalippa@hotmail.com”]。 有什么想法吗?

编辑:我想获取存储在设备上“我”联系人中的电子邮件地址,以及存储在默认邮件应用程序和gmail客户端应用程序中的自己的电子邮件地址(这是默认使用的应用程序,我认为)。 提前致谢。 -G。

1 个答案:

答案 0 :(得分:0)

这些地址中的大多数都是由没有内容提供商的电子邮件客户端维护的。

如果您的目标是使用地址列表来选择外发电子邮件的返回地址,那么这不符合Android的处理方式。您的应用程序应该宣布它想要通过抛弃一个适当装备ACTION_SEND意图来发送电子邮件。无论哪种应用最终服务,它都可以让用户选择在发送时使用哪个帐户和返回地址。


附录:

默认电子邮件客户端有一个名为content://com.android.email.provider/account的内容提供商,您不应该或不能使用,因为:

  • 没有证件。
  • Its manifest要求想要使用它的应用具有com.android.email.permission.ACCESS_PROVIDER权限。
  • 该权限的protectionLevel signatureOrSystem限制了对系统映像中存储的应用的授权,或者使用与系统映像中的密钥相同的密钥进行签名。您的申请不太可能属于这两个类别。

其他需要注意的事项:

  • 无法保证给定设备支持电子邮件。
  • 设备上的电子邮件可能由第三方电子邮件客户端(例如,K9,SEVEN,Touchdown,MailDroid或其他)提供服务,该客户端维护自己的帐户数据库并且可能不会公开它。