我正在创建一个应用程序,现在将使用您对几个问题的回答创建一封包含恶意消息的电子邮件。我想知道如何添加一个功能,让我拍照然后通过电子邮件发送给那个人,我相信我有一些设置正确,但我不知道如何通过电子邮件发送。我的代码如下。我还可以提供我尚未添加的任何其他信息
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);
}
}
}
答案 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以了解如何启动相机意图并对其返回的图像执行某些操作。