Выбор намерений отправки электронной почты

Когда я хочу отправить какой-либо текст с помощью почтового клиента на устройстве, можно ли увидеть, какой почтовый клиент (например, Gmail или Yahoo mail) был выбран, прежде чем я установлю текст электронной почты в намерении?


person Buda Gavril    schedule 10.06.2011    source источник


Ответы (3)


К сожалению нет. Когда вы запускаете намерение выбора, пользователь сам решает, куда идти/что использовать. Все данные должны быть установлены перед запуском намерения, и вы не имеете контроля, пока действие не вернется. Другими словами, вы не можете влиять на текст сообщения на основе своего выбора в диалоге.

person AC2MO    schedule 10.06.2011

Этого нельзя добиться с помощью средства выбора намерений по умолчанию. Однако вы можете запросить, какие действия могут соответствовать вашему намерению:

PackageManager manager = getPackageManager();
List<ResolveInfo> ri = manager.queryIntentActivities(intent,
                               PackageManager.GET_RESOLVED_FILTER);

Затем вы можете перейти к отображению этого в списке, посмотреть, какой выбор сделал пользователь, и выполнить какое-либо намерение, связанное с выбором.

person Paul Lammertsma    schedule 04.04.2013

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

public void sendGmail(Activity activity, String subject, String text) {
    Intent gmailIntent = new Intent();
    gmailIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
    gmailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
    gmailIntent.putExtra(android.content.Intent.EXTRA_TEXT, text);
    try {
      activity.startActivity(gmailIntent);
    } catch(ActivityNotFoundException ex) {
      // handle error
    }
}

И не забудьте добавить интернет-разрешение

person AndroidGeek    schedule 07.01.2015