Android 如何获取存储在设备中的用户自己的电子邮件地址?
我需要检索存储在设备中的用户的所有电子邮件地址(不是他的朋友的电子邮件地址,而是他自己的电子邮件地址)。 例如,如果我有三个邮件地址geltrude@gmail.com, geltry@yahoo.co.uk和cippalippa@hotmail.com,我正在寻找一个方法,该方法返回一个包含以下三个字符串的数组(或类似数组):[”geltrude@gmail.com", "geltry@yahoo.co.uk", "cippalippa@hotmail.com"]. 有什么想法吗 编辑:我想获得存储在设备“我”联系人中的电子邮件地址,以及存储在默认邮件应用程序和gmail客户端应用程序中的自己的电子邮件地址(我认为这是默认使用的应用程序)。 提前谢谢。Android 如何获取存储在设备中的用户自己的电子邮件地址?,android,email,device,email-client,Android,Email,Device,Email Client,我需要检索存储在设备中的用户的所有电子邮件地址(不是他的朋友的电子邮件地址,而是他自己的电子邮件地址)。 例如,如果我有三个邮件地址geltrude@gmail.com, geltry@yahoo.co.uk和cippalippa@hotmail.com,我正在寻找一个方法,该方法返回一个包含以下三个字符串的数组(或类似数组):[”geltrude@gmail.com", "geltry@yahoo.co.uk", "cippalippa@hotmail.com"]. 有什么想法吗 编辑:我想获
G.这些地址中的大多数由电子邮件客户端维护,而这些客户端没有内容提供商可以获取它们 如果您的目标是使用地址列表来选择发送电子邮件的返回地址,那么这不符合Android的做法。您的应用程序应该通过抛出一个适当装备的
ACTION\u send
intent来宣布它想要发送电子邮件。无论应用程序最终提供什么服务,它都可以让用户选择在发送时使用哪个帐户和返回地址
增编: 默认电子邮件客户端有一个名为
content://com.android.email.provider/account
您不应该或不能使用,因为:
- 这是无证的
- 要求希望使用它的应用程序具有
权限com.android.email.permission.ACCESS\u PROVIDER
- 该权限具有
的signatureOrSystem
,该权限限制授予存储在系统映像中或使用与系统映像中相同密钥签名的应用。您的应用程序不太可能属于这两类protectionLevel
- 无法保证给定设备将支持电子邮件
- 设备上的电子邮件可能由第三方电子邮件客户端(例如,K9、SEVEN、触地、MailDroid或其他)提供服务,该客户端维护自己的帐户数据库,并且可能不会公开该数据库
ACTION\u send
intent来宣布它想要发送电子邮件。无论应用程序最终提供什么服务,它都可以让用户选择在发送时使用哪个帐户和返回地址
增编: 默认电子邮件客户端有一个名为
content://com.android.email.provider/account
您不应该或不能使用,因为:
- 这是无证的
- 要求希望使用它的应用程序具有
权限com.android.email.permission.ACCESS\u PROVIDER
- 该权限具有
的signatureOrSystem
,该权限限制授予存储在系统映像中或使用与系统映像中相同密钥签名的应用。您的应用程序不太可能属于这两类protectionLevel
- 无法保证给定设备将支持电子邮件
- 设备上的电子邮件可能由第三方电子邮件客户端(例如,K9、SEVEN、触地、MailDroid或其他)提供服务,该客户端维护自己的帐户数据库,并且可能不会公开该数据库