您的位置:首页 > 移动开发 > Android开发

举例说明android中实现发送邮件的方法

2012-07-26 20:02 696 查看
在android手机中实现发送邮件的功能也是不可缺少的。如何实现它呢?下面以简单的例子进行说明。

程序如下:

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.View.OnKeyListener;

import android.widget.Button;

import android.widget.EditText;

public class A04Activity extends Activity {

private EditText reciver,cc,subject,body;

private Button b;

private String[] strReciver;

private String[] strCc;

private String strBody;

private String strSubject;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

b=(Button)findViewById(R.id.button);

b.setEnabled(false);

b.setText("发送邮件");

reciver=(EditText)findViewById(R.id.reciver);

subject=(EditText)findViewById(R.id.subject);

cc=(EditText)findViewById(R.id.cc);

body=(EditText)findViewById(R.id.body);

reciver.setText("请输入邮箱地址"); //设置默认字段

body.setText("请输入邮件内容");

subject.setText("请输入主题");

cc.setText("请输入邮件的字段");

//点击编辑框,进入可编辑状态

reciver.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

reciver.setText("");

}

});

cc.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

cc.setText("");

}

});

subject.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

subject.setText("");

}

});

body.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

body.setText("");

}

});

reciver.setOnKeyListener(new OnKeyListener(){

@Override

public boolean onKey(View v, int keyCode, KeyEvent event) {

// TODO Auto-generated method stub

if(isEmail(reciver.getText().toString())){

b.setEnabled(true);

}

else{

b.setEnabled(false);

}

return false;

}

});

b.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

strReciver=new String[]{reciver.getText().toString()};

strCc=new String[]{cc.getText().toString()};

strSubject=subject.getText().toString();

strBody=body.getText().toString();

Intent i=new Intent(android.content.Intent.ACTION_SEND);

i.putExtra(android.content.Intent.EXTRA_EMAIL, strReciver);

i.putExtra(android.content.Intent.EXTRA_CC, strCc);

i.putExtra(android.content.Intent.EXTRA_SUBJECT, strSubject);

i.putExtra(android.content.Intent.EXTRA_TEXT, strBody);

startActivity(Intent.createChooser(i, getResources().getString(R.string.str_message)));

}

});

}

public static boolean isEmail(String s){

String expression="^[a-zA-Z][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$";

Pattern p=Pattern.compile(expression);

Matcher m=p.matcher(s);

return m.matches();

}

}

res/layout/main.xml如下

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello" />

<Button

android:id="@+id/button"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

<EditText

android:id="@+id/reciver"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

<EditText

android:id="@+id/cc"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

<EditText

android:id="@+id/subject"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

<EditText

android:id="@+id/body"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

</LinearLayout>

上面是android中实现发送邮件功能的方法之一,还有另外两种方法如下所示:

方法一:

Uri uri=Uri.parse("mailTo:1650***185@qq.com");

Intent i=new Intent(Intent.ACTION_SENDTO,uri);

startActivity(i);

方法二:

Intent i=new Intent(Intent.ACTION_SEND);

String[] tos={"1650***185@qq.com"};

String[] ccs={"7885***158@qq.com"};

i.putExtra(Intent.EXTRA_EMALL,tos);

i.putExtra(Intent.EXTRA_CC,ccs);

i.putExtra(Intent.EXTRA_TEXT,"邮件内容");

i.putExtra(Intent.EXTRA_SUBJECT,"邮件主题");

i.setType("message/rfc822");

startActivity(Intent.createChooser(i,"你的邮件"));

如果想在发送的邮件中添加附件,则可以这样写:

Intent i=new Intent(Intent.ACTION_SEND);

i.putExtra(Intent.EXTRA_SUBJECT,"邮件主题");

i.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/xyz.mp3");

startActivity(Intent.createChooser(i,"你的邮件"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: