第三章:交互式通信服务与手机统制(发送Email)

第三章:交互式通信服务与手机控制(发送Email)
效果:


第三章:交互式通信服务与手机统制(发送Email)



第三章:交互式通信服务与手机统制(发送Email)


发送成功

第三章:交互式通信服务与手机统制(发送Email)


(注:发送前将自己手机或手机模拟器设置好信箱)
设置流程我用的是163的信箱。

图:


第三章:交互式通信服务与手机统制(发送Email)

第三章:交互式通信服务与手机统制(发送Email)




main.xml

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Button
android:id="@+id/send"
android:layout_width="93px"
android:layout_height="wrap_content"
android:text="&#21457;&#36865;"
android:layout_x="111px"
android:layout_y="356px"
>
</Button>
<TextView
android:id="@+id/widget31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="&#25910;&#20214;&#20154;:"
android:textSize="19sp"
android:layout_x="28px"
android:layout_y="31px"
>
</TextView>
<EditText
android:id="@+id/receiving"
android:layout_width="179px"
android:layout_height="wrap_content"
android:text=" "
android:textSize="18sp"
android:layout_x="109px"
android:layout_y="19px"
>
</EditText>
<TextView
android:id="@+id/widget33"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="&#21457;&#20214;&#20154;:"
android:textSize="19sp"
android:layout_x="45px"
android:layout_y="81px"
>
</TextView>
<EditText
android:id="@+id/accessories"
android:layout_width="182px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="106px"
android:layout_y="68px"
>
</EditText>
<TextView
android:id="@+id/widget35"
android:layout_width="wrap_content"
android:layout_height="26px"
android:text="&#26631;&#39064;:"
android:textSize="19sp"
android:layout_x="50px"
android:layout_y="130px"
>
</TextView>
<EditText
android:id="@+id/title"
android:layout_width="181px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="105px"
android:layout_y="119px"
>
</EditText>
<EditText
android:id="@+id/text"
android:layout_width="296px"
android:layout_height="146px"
android:textSize="18sp"
android:layout_x="11px"
android:layout_y="200px"
>
</EditText>
<TextView
android:id="@+id/widget38"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="&#27491;&#25991;"
android:textSize="19sp"
android:layout_x="53px"
android:layout_y="170px"
>
</TextView>
</AbsoluteLayout>



package send.email.test;

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.widget.Button;
import android.widget.EditText;

public class SendEmailTest extends Activity {
	private EditText receiving;
	private EditText accessories;
	private EditText title;
	private EditText text;
	private Button button;
	private String[] reciver;
	private String[] subject;
	private String emailCc;
	private String emailBody;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /** 载入main.xml*/
        setContentView(R.layout.main);
        /**通过id找到EditText组件*/
        receiving =(EditText)findViewById(R.id.receiving);
        accessories=(EditText)findViewById(R.id.accessories);
        title=(EditText)findViewById(R.id.title);
        text=(EditText)findViewById(R.id.text);
        button=(Button)findViewById(R.id.send);
        /**设置Button按钮点击事件*/
        receiving.setOnKeyListener(new EditText.OnKeyListener() {
        	public boolean onKey(View v,int keyCode,KeyEvent event){
        		/**Email格式是否正确*/
        		if(isEmail(receiving.getText().toString())){
        			/**设置Button按钮为可点击*/
        			button.setEnabled(true);
        		}else{
        			/**设置Button按钮不可点击*/
        			button.setEnabled(false);
        		}
				return false;
        	}
		});
        
        
        button.setOnClickListener(new Button.OnClickListener(){
        	public void onClick(View v){
        		/**通过Intent发送Email*/
        		Intent intent=new Intent(android.content.Intent.ACTION_SEND);
        		/**
        		 * intent.setType("text/plain"); 模拟器请使用这行
				 * intent.setType("message/rfc822") ;  真机上使用这行
				 */
        		intent.setType("plain/text");
        		/**取得收件人地址 主旨正文*/
        		reciver=new String[]{
        				receiving.getText().toString()
        		};
        		subject=new String[]{accessories.getText().toString()};
        		emailCc=title.getText().toString();
        		emailBody=text.getText().toString();
        		/**将字符串放进intent*/
        		intent.putExtra(android.content.Intent.EXTRA_EMAIL, reciver);
        		intent.putExtra(android.content.Intent.EXTRA_CC, subject);
        		intent.putExtra(android.content.Intent.EXTRA_SUBJECT, emailCc);
        		intent.putExtra(android.content.Intent.EXTRA_TEXT, emailBody);
        		/**打开Email将参数传入*/
        		startActivity(Intent.createChooser(intent, getResources().getString(R.string.send)));
        	}
        });
    }
    /**匹配Email格式是否正确*/
    public static boolean isEmail(String email){
    	String strPattern="\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";      
    	Pattern pattern=Pattern.compile(strPattern);
    	Matcher matcher=pattern.matcher(email);
    	return matcher.find();
    }
}