Quando voglio inviare del testo con un client di posta elettronica sul dispositivo, è possibile vedere quale client di posta elettronica (ad es. Gmail o Yahoo mail) è stato scelto prima di impostare il testo dell'e-mail nell'intento?
risposte:
2 per risposta № 1Sfortunatamente no. Quando si avvia l'intento di selezione, spetta all'utente decidere dove andare / cosa utilizzare. Tutti i dati devono essere impostati prima di avviare l'intento e non si ha alcun controllo fino a quando l'attività non ritorna. In altre parole, si non può influire sul testo del messaggio in base alla loro scelta nella finestra di dialogo.
0 per risposta № 2
Questo non può essere realizzato utilizzando il selettore di intenti predefinito. Tuttavia, puoi interrogare quali attività possono rispondere al tuo intento:
PackageManager manager = getPackageManager();
List<ResolveInfo> ri = manager.queryIntentActivities(intent,
PackageManager.GET_RESOLVED_FILTER);
È quindi possibile procedere con la visualizzazione di questo in un elenco, osservare la selezione effettuata dall'utente ed eseguire alcune intenzioni specifiche della selezione.
0 per risposta № 3
puoi chiamare esplicitamente il componente desiderato per fare il tuo servizio. Voglio inviare e-mail utilizzando Gmail come
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
}
}
E non dimenticare di aggiungere l'autorizzazione Internet