【问题标题】:I need send image from camera via mail我需要通过邮件从相机发送图像
【发布时间】:2016-05-13 23:09:15
【问题描述】:

我对 android studio 和其他东西有点陌生......所以我被卡住了。我需要捕获图片并将其发送到电子邮件。`public class MainActivity extends Activity implements OnClickListener {

EditText editTextEmail, editTextSubject, editTextMessage;
Button btnSend, btnAttachment;
String email, subject, message, attachmentFile;
Uri URI = null;
private static final int PICK_FROM_GALLERY = 101;
int columnIndex;
protected static final int CAMERA_PIC_REQUEST = 0;
Bitmap thumbnail;
File pic;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    editTextEmail = (EditText) findViewById(R.id.editTextTo);
    editTextSubject = (EditText) findViewById(R.id.editTextSubject);
    editTextMessage = (EditText) findViewById(R.id.editTextMessage);
    btnAttachment = (Button) findViewById(R.id.buttonAttachment);
    btnSend = (Button) findViewById(R.id.buttonSend);

    btnSend.setOnClickListener(this);
    btnAttachment.setOnClickListener(this);
}





@Override
public void onClick(View v) {

    if (v == btnAttachment) {
        openGallery();

    }
    if (v == btnSend) {
        try {
            email = editTextEmail.getText().toString();
            subject = editTextSubject.getText().toString();
            message = editTextMessage.getText().toString();

            final Intent emailIntent = new Intent (Intent.ACTION_SEND);
           // emailIntent.setType("message/rfc822");
            emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
                    new String[] { email });
            emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
                    subject);
            if (URI != null) {
                emailIntent.putExtra(Intent.EXTRA_STREAM, URI.fromFile(pic));
            }

            emailIntent.setType("image/png");
            emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
            this.startActivity(Intent.createChooser(emailIntent,
                    "Sending email..."));

        } catch (Throwable t) {
            Toast.makeText(this,
                    "Request failed try again: " + t.toString(),
                    Toast.LENGTH_LONG).show();
        }
    }

}

public void openGallery(){
    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_PIC_REQUEST) {
        thumbnail = (Bitmap) data.getExtras().get("data");
        ImageView image = (ImageView) findViewById(R.id.imageView1);
        image.setImageBitmap(thumbnail);


        try {
            File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
            if (root.canWrite()){
                pic = new File(root, "pic.png");
                FileOutputStream out = new FileOutputStream(pic);
                thumbnail.compress(Bitmap.CompressFormat.PNG, 100, out);
                out.flush();
                out.close();
            }
        } catch (IOException e) {
            Log.e("BROKEN", "Could not write file " + e.getMessage());
        }

    }
}
}

这是我的代码,我可以用它拍照或不带图片发送电子邮件。

附:我发现自己的错误。清单文件中没有权限的地方

【问题讨论】:

  • 你有什么错误吗?
  • 不,没有错误。我需要以某种方式更改将照片添加到附件的方法。
  • screenshoot我可以添加图片,但看起来像这样。

标签: java android email android-camera


【解决方案1】:

使用 Intent 调用您的邮件应用程序并附加图片:

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
emailIntent.setType("application/image");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{strEmail}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Add your Subject Here"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Hey, I send you this Image from my Camera App"); 
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("Your ImagePath"));
startActivity(Intent.createChooser(emailIntent, "Send mail..."));

【讨论】:

    猜你喜欢
    • 2011-01-09
    • 2023-03-10
    • 1970-01-01
    • 2012-05-25
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2012-04-24
    相关资源
    最近更新 更多