Дополнения по электронной почте намерения - настройки XML - PullRequest
9 голосов
/ 05 августа 2011

Я хочу вызвать электронное письмо с моего экрана настроек XML, а также прикрепить предварительно заданную тему и запустить курсор в поле «Тело» приложения электронной почты.

Вот что я получил до сих пор

  <Preference
    android:title="Support"
    android:summary="Having a problem?">

    <intent
      android:action="android.intent.action.VIEW"
      android:data="mailto:support@xxxxx.com"
      />

  </Preference>

Прекрасно работает для запуска намерения электронной почты, но как мне добиться выполнения других с помощью XML?прикрепить тему и все?

Ответы [ 2 ]

21 голосов
/ 12 марта 2012

Вы можете использовать как параметры запроса mailto, как говорит jondavidjohn, так и намеренные дополнения, и вы можете смешивать и сопоставлять их оба.Например:

<intent
  android:action="android.intent.action.VIEW"
  android:data="mailto:xxxxx@xxxxxxx.com?subject=this is a test subject">
  <extra android:name="android.intent.extra.TEXT" android:value="This is a test" />
</intent>

... позволит вам указать тело письма, а также тему.Вы также можете указать тему как дополнительную.Это также позволяет вам использовать строковые ресурсы XML вместо жесткого кодирования:

  <extra android:name="android.intent.extra.SUBJECT" android:value="@string/email_subject" />

Я только что получил дополнительные имена Intent из Intent.java;связанные с электронной почтой все вместе.

Я только что обнаружил это и не провел большого тестирования, но это, безусловно, работает с моим почтовым клиентом GMail.

Кроме того, если это поможет, я успешно использовал "тело" URI mailto: например,

 mailto:example@example.com?subject=This%20is%20a%20subject&body=This%20is%20a%20body

Не знаю, помогло ли это, что я зашифровал URL своего почтового URL;Я просто делал это по привычке, исходя из веб-фона.Но это определенно работает и устанавливает тело в приложениях GMail и K9 Mail.

2 голосов
/ 05 августа 2011

Очевидно, вы можете использовать многие аргументы строки запроса, которые вы можете использовать в обычном браузере mailto: uri.

Так что для этого вам просто нужно использовать их вот так.

<intent
  android:action="android.intent.action.VIEW"
  android:data="mailto:xxxxx@xxxxxxx.com?subject=this is a test subject"
  />
...