How to open Email program via Intents (but only an Email program)
Changing the MIME type is the answer, this is what I did in my app to change the same behavior. I used intent.setType("message/rfc822");
Open Email App only through intent in Android Studio
Use this code to open default Mail Application :
try {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_APP_EMAIL);
this.startActivity(intent);
} catch (android.content.ActivityNotFoundException e) {
Toast.makeText(Dashboard.this, "There is no email client installed.", Toast.LENGTH_SHORT).show();
}
Opening email client via Intent (but not to send a message)
I think you should replace Intent.ACTION_SEND
to Intent.ACTION_VIEW
,
i am sure this will work as this will prompt with list of application which support MIME type "message/rfc822"
so it will include your default email client in your device other than gmail app.
How about this code:
final Intent emailLauncher = new Intent(Intent.ACTION_VIEW);
emailLauncher.setType("message/rfc822");
try{
startActivity(emailLauncher);
}catch(ActivityNotFoundException e){
}
Open mail app via intent doesn't open chooser
use the following snippet to open to outlook directly from a different app
context.startActivity(
Intent().apply {
action = Intent.ACTION_MAIN
addCategory(Intent.CATEGORY_LAUNCHER)
component = ComponentName(
outlookLaunchIntent?.component?.packageName,
outlookLaunchIntent?.component?.className
)
setPackage(outlookLaunchIntent.package)
}
)
com.microsoft.office.outlook
is the package name for outlook
For sending it to all email clients use a uri like this
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse("mailto:?subject=" + subject + "&body=" + body);
intent.setData(data);
startActivity(intent);
Ref:How to open Email program via Intents (but only an Email program)
Opening an email client on clicking a button
Goes like this:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "some@email.address" });
intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
intent.putExtra(Intent.EXTRA_TEXT, "mail body");
startActivity(Intent.createChooser(intent, ""));
Alternatively, you could use IntentFactory.getSendEmailIntent(String mailTo, String mailCC,
String subject, CharSequence body, File attachment).
Android intent not showing only email clients
when you will change your intent.setType
like below you will get
intent.setType("text/plain");
Use
android.content.Intent.ACTION_SENDTO
(new Intent(Intent.ACTION_SENDTO);)
to get only the list of e-mail clients, with no facebook or other apps. Just the email clients.
I wouldn't suggest you get directly to the email app. Let the user choose his favorite email app. Don't constrain him.
If you use ACTION_SENDTO
, putExtra
does not work to add subject and text to the intent. Use Uri to add the subject and body text.
We can use message/rfc822
instead of "text/plain"
as the MIME type. However, that is not indicating "only offer email clients" -- it indicates "offer anything that supports message/rfc822 data"
. That could readily include some application that are not email clients.
message/rfc822
supports MIME Types of .mhtml, .mht, .mime
EDIT
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:someone@example.com"));
intent.putExtra("subject", "my subject");
intent.putExtra("body", "my message");
startActivity(intent);
its working ...
Related Topics
Android Parcelable -- Retailerorderactivity.Java Return Null
Why Is Android Geocoder Throwing a "Service Not Available" Exception
The Signing Fingerprint You Specified Is Already Used by Another Android Oauth2 Client
Distance Calculation from My Location to Destination Location in Android
Android - Drawable with Rounded Corners at the Top Only
Android: Scrolling an Imageview
Android Webview Style Background-Color:Transparent Ignored on Android 2.2
How to Determine If Network Type Is 2G, 3G or 4G
Change Toolbar Color in Appcompat 21
Why Do I Get Access Denied to Data Folder When Using Adb
How to Create a Transparent Demo Screen for an Android App
Measuring Text Height to Be Drawn on Canvas ( Android )
Android M Permissions:Confused on the Usage of Shouldshowrequestpermissionrationale() Function
Android Adb Device Offline, Can't Issue Commands
How to Obtain Signing Certificate Fingerprint (Sha1) for Oauth 2.0 on Android