В этом диалоговом окне выбора я получаю опцию, например «GMail», и она отлично работает.
Это означает, что Gmail должен поддерживать шаблон подстановки */*
для типа MIME., поскольку email/text
не является допустимым типом MIME.
Мой вопрос заключается в том, почему этот селектор также отображает «WhatsApp», когда WhatsApp НЕ МОЖЕТ обрабатывать такое намерение
Разработчикиприложения WhatsApp считают, что они могут обрабатывать такие Intent
.
Даже если я выберу WhatsApp и попытаюсь отправить сообщение, он ничего не сделает (потому что WhatsApp не может обработать намерение заполнить «Кому», какприложения для электронной почты могут).
Тот факт, что WhatsApp игнорирует EXTRA_EMAIL
, вполне оправдан.ACTION_SEND
- это запрос , а не команда.EXTRA_EMAIL
является предложением , а не командой.Например, Gmail не обязан обращать внимание на EXTRA_EMAIL
в его реализации ACTION_SEND
.Это случается, но не думайте, что все реализации ACTION_SEND
будут обращать внимание на EXTRA_EMAIL
.
, если я попытаюсь использовать intent.setType("email");
В диалоговом окне выбора «нет приложения длявыполнить эту функцию '.
Это потому, что email
не имеет структуры типа MIME.
Или я использую намерение отправки почты неправильным способом(и как мне тогда его использовать)?
В Android нет "намерения отправки почты".
Вашему ACTION_SEND
Intent
не хватает ничего для отправки, так каку него нет ни EXTRA_TEXT
, ни EXTRA_STREAM
.В результате, лоты из ACTION_SEND
-поддерживаемых действий не принесут ничего полезного с вашими Intent
.
JavaDocs для ACTION_SEND
немноготрудно читать, но это объясняет, для чего ACTION_SEND
Intent
и как его настроить.В документации также есть это и это также могут быть полезны.