Este código se iniciará directamente el Gmail aplicación para enviar un correo electrónico.
He encontrado a cabo utilizando this post que la parte importante aquí es encontrar el "packageName" y el "activityInfo.name"
quería utilizar solamente Gmail sin un selector. Tenga en cuenta que el nombre del paquete está codificado de manera que si Gmail cambia su nombre de paquete no funcionará más.
La clave para esto fue el setComponent donde el primer param es el nombre del paquete y el segundo param es el nombre de activityInfo.
Pero como dije uso con precaución, me repito; si el usuario no tiene instalada la aplicación de Gmail o si gmail cambia su nombre de paquete o su nombre de Actividad para enviar un correo electrónico, este código (difícil) se romperá. Tu han sido advertidos;)
Aquí está mi código
Intent myIntent = new Intent(Intent.ACTION_SEND);
PackageManager pm = getPackageManager();
Intent tempIntent = new Intent(Intent.ACTION_SEND);
tempIntent.setType("*/*");
List<ResolveInfo> resInfo = pm.queryIntentActivities(tempIntent, 0);
for (int i = 0; i < resInfo.size(); i++) {
ResolveInfo ri = resInfo.get(i);
if (ri.activityInfo.packageName.contains("android.gm")) {
myIntent.setComponent(new ComponentName(ri.activityInfo.packageName, ri.activityInfo.name));
myIntent.setAction(Intent.ACTION_SEND);
myIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
myIntent.setType("message/rfc822");
myIntent.putExtra(Intent.EXTRA_TEXT, "extra text");
myIntent.putExtra(Intent.EXTRA_SUBJECT, "Extra subject");
myIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("uri://your/uri/string");
}
}
startActivity(myIntent);
n no he probado esto todavía. Pero definitivamente lo haré. Gracias por la ayuda Jeff. – Aakash
text/plain works – Aakash
gracias por el enlace también –