Eclipse电子邮件+图片

时间:2013-06-04 16:55:33

标签: java android xml eclipse

我正在创建一个应用程序,现在将使用您对几个问题的回答创建一封包含恶意消息的电子邮件。我想知道如何添加一个功能,让我拍照然后通过电子邮件发送给那个人,我相信我有一些设置正确,但我不知道如何通过电子邮件发送。我的代码如下。我还可以提供我尚未添加的任何其他信息

package com.example.first_app;

import java.io.IOException;
import java.io.InputStream;

import android.app.Activity;
import android.app.WallpaperManager;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;

public class Email extends Activity implements View.OnClickListener{

EditText personsEmail, intro, personsName, stupidThings, hatefulAction,
        outro;
String emailAdd, beginning, name, stupidAction, hatefulAct, out;
Button sendEmail;
Button takePicture;
ImageView Picture;
final static int Camera_data = 0;
Bitmap bmp;
Intent i;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.email);
    initializeVars();
    sendEmail.setOnClickListener(this);
    takePicture.setOnClickListener(this);
    InputStream is = getResources().openRawResource(R.drawable.ic_launcher);
    bmp = BitmapFactory.decodeStream(is);
}

private void initializeVars() {
    // TODO Auto-generated method stub
    personsEmail = (EditText) findViewById(R.id.etEmails);
    intro = (EditText) findViewById(R.id.etIntro);
    personsName = (EditText) findViewById(R.id.etName);
    stupidThings = (EditText) findViewById(R.id.etThings);
    hatefulAction = (EditText) findViewById(R.id.etAction);
    outro = (EditText) findViewById(R.id.etOutro);
    sendEmail = (Button) findViewById(R.id.bSentEmail);
    takePicture = (Button) findViewById(R.id.take_Picture);
    Picture = (ImageView) findViewById(R.id.iv_Returned_Picture);
}

public void onClick(View v) {
    // TODO Auto-generated method stub

    convertEditTextVarsIntoStringsAndYesThisIsAMethodWeCreated();
    String emailaddress[] = { emailAdd };
    String message = "Well hello "
            + name
            + " I just wanted to say "
            + beginning
            + ".  Not only that but I hate when you "
            + stupidAction
            + ", that just really makes me crazy.  I just want to make you "
            + hatefulAct
            + ".  Welp, thats all I wanted to chit-chatter about, oh and"
            + out
            + '\n' + "PS. I think I love you...    ";



    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, emailaddress);
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "I hate you");
    emailIntent.setType("plain/text");
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
    startActivity(emailIntent);

}

private void convertEditTextVarsIntoStringsAndYesThisIsAMethodWeCreated() {
    // TODO Auto-generated method stub
    emailAdd = personsEmail.getText().toString();
    beginning = intro.getText().toString();
    name = personsName.getText().toString();
    stupidAction = stupidThings.getText().toString();
    hatefulAct = hatefulAction.getText().toString();
    out = outro.getText().toString();
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    finish();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK){
        Bundle extras = data.getExtras();
        bmp = (Bitmap) extras.get("data");
        Picture.setImageBitmap(bmp);
}
}
}

1 个答案:

答案 0 :(得分:1)

这将显示可用于发送电子邮件的电子邮件客户端列表。您可以通过启动Intent来让Android为您处理邮件:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); //allow multiple attachments

emailIntent.setType("plain/text"); //limits how Android handles the "send" request to email rather than Facebook, Peep, etc.
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, getText(R.string.subject)); //set the email subject line

ArrayList<Uri> uris = new ArrayList<Uri>(); //multiple attachments must be added via list object
File root = Environment.getExternalStorageDirectory(); //root filepath

//get images to add to email
File fileIn = new File(root, "image.png");
Uri u = Uri.fromFile(fileIn);
uris.add(u);

//get another image to add to email
fileIn = new File(root, "image2.jpg");
u = Uri.fromFile(fileIn);
uris.add(u);
//add images to email
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

AdminActivity.this.startActivity(Intent.createChooser(emailIntent, "Send mail..."));

您还可以查看Android camera intent以了解如何启动相机意图并对其返回的图像执行某些操作。