Когда я хочу отправить какой-либо текст с помощью почтового клиента на устройстве, можно ли увидеть, какой почтовый клиент (например, Gmail или Yahoo mail) был выбран, прежде чем я установлю текст электронной почты в намерении?
Выбор намерений отправки электронной почты
Ответы (3)
К сожалению нет. Когда вы запускаете намерение выбора, пользователь сам решает, куда идти/что использовать. Все данные должны быть установлены перед запуском намерения, и вы не имеете контроля, пока действие не вернется. Другими словами, вы не можете влиять на текст сообщения на основе своего выбора в диалоге.
Этого нельзя добиться с помощью средства выбора намерений по умолчанию. Однако вы можете запросить, какие действия могут соответствовать вашему намерению:
PackageManager manager = getPackageManager();
List<ResolveInfo> ri = manager.queryIntentActivities(intent,
PackageManager.GET_RESOLVED_FILTER);
Затем вы можете перейти к отображению этого в списке, посмотреть, какой выбор сделал пользователь, и выполнить какое-либо намерение, связанное с выбором.
вы можете явно вызвать желаемый компонент для выполнения вашей услуги. Я хочу отправить электронное письмо с помощью 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
}
}
И не забудьте добавить интернет-разрешение