Sunday 6 January 2013

Sending Mail Attachment in Android

MainActivity.java
   package com.rajeshvijayakumar.mail;

   import android.os.Bundle;
   import android.app.Activity;
   import android.content.Intent;
   import android.view.Menu;
   import android.view.View;
   import android.widget.Button;
   import android.widget.EditText;

   public class MainActivity extends Activity { 

private Button buttonSend;
private EditText textTo;
private EditText textSubject;
private EditText textMessage;
@Override
        public void onCreate(Bundle savedInstanceState) {
                  super.onCreate(savedInstanceState);
                  setContentView(R.layout.main);

                  buttonSend = (Button) findViewById(R.id.buttonSend);
                  textTo = (EditText) findViewById(R.id.editTextTo);
                  textSubject = (EditText) findViewById(R.id.editTextSubject);
                  textMessage = (EditText) findViewById(R.id.editTextMessage); 

                  buttonSend.setOnClickListener(new  android.view.View.OnClickListener() {

                          @Override
                           public void onClick(View v) {

                                 String to = textTo.getText().toString();
                                 String subject = textSubject.getText().toString();
                                 String message = textMessage.getText().toString();
                                  Intent i = new Intent(Intent.ACTION_SEND);
                                  i.setType("plain/text");
                                  File data = null;
                                  try {
                                           Date dateVal = new Date();
                                           String filename = dateVal.toString();
                                           data = File.createTempFile("Report", ".csv");
                                           FileWriter out = (FileWriter) GenerateCsv.generateCsvFile(
                                                                                                                            data, "Name,Data1");
                                           i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(data));
                                           i.putExtra(Intent.EXTRA_EMAIL, new String[] { to });
                                           i.putExtra(Intent.EXTRA_SUBJECT, subject);
                                           i.putExtra(Intent.EXTRA_TEXT, message);
                                           startActivity(Intent.createChooser(i, "E-mail"));
                                 } catch (IOException e) {
                                            e.printStackTrace();
                          }
                }
        });
   }

   public class GenerateCsv {
       public static FileWriter generateCsvFile(File sFileName,String fileContent) {
                FileWriter writer = null;

                try {
                       writer = new FileWriter(sFileName);
                       writer.append(fileContent);
                       writer.flush();
               } catch (IOException e) {
                         e.printStackTrace();
               } finally {
                  try {
                        writer.close();
                  } catch (IOException e) {
                         e.printStackTrace();
                  }
              }
              return writer;
      }
   }
}


main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="17dp"
        android:layout_marginTop="30dp"
        android:text="From"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/textView1"
        android:layout_marginRight="15dp"
        android:ems="10"
        android:inputType="textPersonName" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="29dp"
        android:text="To"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/editTextTo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_alignTop="@+id/textView2"
        android:ems="10"
        android:inputType="textPersonName" />

    <EditText
        android:id="@+id/editTextSubject"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView3"
        android:layout_alignBottom="@+id/textView3"
        android:layout_alignRight="@+id/editTextTo"
        android:ems="10"
        android:inputType="textPassword" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editTextTo"
        android:layout_marginTop="39dp"
        android:layout_toLeftOf="@+id/editTextSubject"
        android:text="Subject"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_below="@+id/editTextSubject"
        android:layout_marginTop="35dp"
        android:text="Message"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/editTextMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView4"
        android:layout_marginTop="16dp"
        android:layout_toRightOf="@+id/textView3"
        android:ems="10"
        android:inputType="textMultiLine" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/buttonSend"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/textView4"
        android:text="Button" />
  
</RelativeLayout>


AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.rajeshvijayakumar.mail"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <application
       android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.rajeshvijayakumar.mail.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>







No comments:

Post a Comment