Kiedy chcę wysłać wiadomość tekstową za pomocą klienta poczty e-mail na urządzeniu, czy mogę sprawdzić, który klient poczty e-mail (np. Gmail lub Yahoo) został wybrany, zanim ustawię tekst wiadomości e-mail w zamierzeniu?
Odpowiedzi:
2 dla odpowiedzi № 1Niestety nie. Po uruchomieniu zamiaru selektora to użytkownik decyduje, gdzie pójść / czego użyć. Wszystkie dane muszą zostać ustawione przed uruchomieniem zamiaru, a ty nie masz kontroli, dopóki aktywność nie powróci. Innymi słowy, ty nie mogą wpływać na tekst wiadomości na podstawie ich wyboru w oknie dialogowym.
0 dla odpowiedzi nr 2
Nie można tego osiągnąć przy użyciu domyślnego selektora zamiarów. Możesz jednak zapytać, które działania mogą odpowiedzieć na twoje zamiary:
PackageManager manager = getPackageManager();
List<ResolveInfo> ri = manager.queryIntentActivities(intent,
PackageManager.GET_RESOLVED_FILTER);
Następnie możesz przejść do wyświetlania tego na liście, obserwować, który wybór dokonał użytkownik i wykonać pewne intencje specyficzne dla wyboru.
0 dla odpowiedzi № 3
możesz jawnie zadzwonić do wybranego komponentu w celu wykonania usługi. Chcę wysłać e-mail za pomocą Gmaila, takiego jak
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
}
}
I nie zapomnij dodać uprawnienia do Internetu