Как получить собственные адреса электронной почты, хранящиеся на устройстве? - PullRequest
2 голосов
/ 26 февраля 2011

Мне нужно получить все адреса электронной почты пользователя, хранящиеся на устройстве (не адреса электронной почты его друзей, а его собственные адреса электронной почты). Например, если у меня три почтовых адреса geltrude@gmail.com, geltry@yahoo.co.uk и cippalippa@hotmail.com, я ищу метод, который возвращает массив (или аналогичный) с этими тремя строками: ["geltrude@gmail.com", "geltry@yahoo.co.uk", "cippalippa@hotmail.com"]. Есть идеи?

Редактировать: я хотел бы получить адреса электронной почты, сохраненные в контакте «я» на устройстве, плюс собственные адреса электронной почты, сохраненные в почтовом приложении по умолчанию и в клиентском приложении gmail (которые используются по умолчанию, Я думаю). Заранее спасибо. G.

1 Ответ

0 голосов
/ 26 февраля 2011

Большинство из этих адресов поддерживаются почтовыми клиентами, которые не имеют поставщиков контента для доступа к ним.

Если ваша цель - использовать список адресов для выбора обратного адреса для исходящей электронной почты, тоне подходит к способу Android.Ваша заявка должна объявить, что она хочет отправить электронное письмо, выбрасывая должным образом ACTION_SEND намерение.Какое бы приложение в конечном итоге ни обслуживало его, оно может дать пользователю выбор, какую учетную запись и обратный адрес использовать при отправке.


Приложение:

У почтового клиента по умолчанию есть поставщик контента, который называется content://com.android.email.provider/account, который вы не должны или не можете использовать, потому что:

  • Недокументированный.
  • Его манифест требует, чтобы приложения, желающие его использовать, имели com.android.email.permission.ACCESS_PROVIDER разрешение.
  • Это разрешение имеет protectionLevel из signatureOrSystem, что ограничивает разрешения для приложений, хранящихся в образе системы или подписанных тем же ключом, что и в образе системы.Ваше приложение вряд ли попадет ни в одну из этих категорий.

Другие сведения, о которых следует знать:

  • Нет гарантии, что данное устройство будет поддерживать электронную почту.
  • Электронная почта на устройстве может обслуживаться сторонним почтовым клиентом (например, K9, SEVEN, Touchdown, MailDroid или другими), который поддерживает собственную базу данных учетных записей и, вероятно, не раскрывает ее.
...