How to Create Email Sharing App in Android Studio Work with Share Intent in Application

How to Create Email Sharing App in Android Studio Work with Share Intent in Application



Full tutorial is given below. Dear Viewer we are working hard to maintain this website. We doesn't want any think from you. Its just a humble request If you thinks that this posts helps you please share this post with your friends.




Send Email using Intent - Android Studio - Java



activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="10dp"
    tools:context=".MainActivity">




    <!--EditText: Input the recipient-->
    <EditText
        android:id="@+id/recipientEt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:hint="Recipient email(s)"
        android:inputType="textEmailAddress"
        android:padding="10dp"
        android:textColor="@color/black" />

    <!--EditText: Input the subject of email-->
    <EditText
        android:id="@+id/subjectEt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:hint="Subject"
        android:layout_marginTop="2dp"
        android:layout_marginBottom="2dp"
        android:inputType="text|textCapSentences"
        android:padding="10dp"
        android:textColor="@color/black" />

    <!--EditText: Input the message-->
    <EditText
        android:id="@+id/messageEt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:gravity="start"
        android:hint="Enter message here..."
        android:inputType="text|textCapSentences"
        android:minHeight="150dp"
        android:padding="10dp"
        android:textColor="@color/black" />

    <!--Button:   Launch existing email clients to send email-->
    <Button
        android:id="@+id/sendEmailBtn"
        style="@style/Base.Widget.AppCompat.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end"
        android:text="send Email" />




</LinearLayout>








MainActivity.java


package com.usmtip.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {



    //declare views
    EditText mRecipientEt, mSubjectEt, mMessageEt;
    Button mSendEmailBtn;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        //initializing views with activity_main.xml
        mRecipientEt = findViewById(R.id.recipientEt);
        mSubjectEt = findViewById(R.id.subjectEt);
        mMessageEt = findViewById(R.id.messageEt);
        mSendEmailBtn = findViewById(R.id.sendEmailBtn);

        //button click to get input and call sendEmail method
        mSendEmailBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //get input from EditTexts and save in variables
                String recipient = mRecipientEt.getText().toString().trim(); //trim will remove space before and after the text
                String subject = mSubjectEt.getText().toString().trim();
                String message = mMessageEt.getText().toString().trim();

                //method call for email intent with these inputs as parameters
                sendEmail(recipient, subject, message);

            }
        });

    }

    private void sendEmail(String recipient, String subject, String message) {
        /*ACTION_SEND action to launch an email client installed on your Android device.*/
        Intent mEmailIntent = new Intent(Intent.ACTION_SEND);
        /*To send an email you need to specify mailto: as URI using setData() method
        and data type will be to text/plain using setType() method*/
        mEmailIntent.setData(Uri.parse("mailto:"));
        mEmailIntent.setType("text/plain");
        // put recipient email in intent
        /* recipient is put as array because you may wanna send email to multiple emails
           so enter comma(,) separated emails, it will be stored in array*/
        mEmailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{recipient});
        //put subject of email
        mEmailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
        //put message of email in intent
        mEmailIntent.putExtra(Intent.EXTRA_TEXT, message);

        try {
            //no error, so start intent
            startActivity(Intent.createChooser(mEmailIntent, "Choose an Email Client"));
        }
        catch (Exception e){
            //if anything goes wrong e.g no internet or no email client lie gmail is available
            //get and show exception message
            Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
        }





    }
}











All Server Links to Download This File:



Previous Post
Next Post

post written by:

0 Comments: