In the previous posts "Send email using Intent.ACTION_SEND" and "Select Image using Android build-in Gallery" demonstrate how to send text email and load image by starting activity using Intent. In this exercise, both function are work together to send email with photos attached.

Send email with Image by starting activity using Intent of ACTION_SEND


To attach image in email intent, call putExtra() to attach the image uri, and call setType() to set type of "image/png".

package com.exercise.AndroidEMail; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends Activity { EditText edittextEmailAddress; EditText edittextEmailSubject; EditText edittextEmailText; TextView textImagePath; Button buttonSelectImage; Button buttonSendEmail_intent; final int RQS_LOADIMAGE = 0; final int RQS_SENDEMAIL = 1; Uri imageUri = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edittextEmailAddress = (EditText)findViewById(R.id.email_address); edittextEmailSubject = (EditText)findViewById(R.id.email_subject); edittextEmailText = (EditText)findViewById(R.id.email_text); textImagePath = (TextView)findViewById(R.id.imagepath); buttonSelectImage = (Button)findViewById(R.id.selectimage); buttonSendEmail_intent = (Button)findViewById(R.id.sendemail_intent); buttonSelectImage.setOnClickListener(buttonSelectImageOnClickListener); buttonSendEmail_intent.setOnClickListener(buttonSendEmail_intentOnClickListener); } OnClickListener buttonSelectImageOnClickListener = new OnClickListener(){ @Override public void onClick(View arg0) { Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, RQS_LOADIMAGE); }}; OnClickListener buttonSendEmail_intentOnClickListener = new OnClickListener(){ @Override public void onClick(View arg0) { String emailAddress = edittextEmailAddress.getText().toString(); String emailSubject = edittextEmailSubject.getText().toString(); String emailText = edittextEmailText.getText().toString(); String emailAddressList[] = {emailAddress}; Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_EMAIL, emailAddressList); intent.putExtra(Intent.EXTRA_SUBJECT, emailSubject); intent.putExtra(Intent.EXTRA_TEXT, emailText); if(imageUri != null){ intent.putExtra(Intent.EXTRA_STREAM, imageUri); intent.setType("image/png"); }else{ intent.setType("plain/text"); } startActivity(Intent.createChooser(intent, "Choice App to send email:")); }}; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK){ switch(requestCode){ case RQS_LOADIMAGE: imageUri = data.getData(); textImagePath.setText(imageUri.toString()); break; case RQS_SENDEMAIL: break; } } } } 


<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello_world" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Enter email address:" /> <EditText android:id="@+id/email_address" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textEmailAddress" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Enter email Subject:" /> <EditText android:id="@+id/email_subject" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textEmailSubject" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Enter Text:" /> <EditText android:id="@+id/email_text" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/imagepath" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/selectimage" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Select image" /> <Button android:id="@+id/sendemail_intent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text=" Send email using Intent.ACTION_SEND " /> </LinearLayout> 


Download the files.


-- Delivered by Feed43 service

Related Posts

There is no other posts in this category.

Post a Comment

Subscribe Our Newsletter