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