Actualmente estoy intentando crear una aplicación que tomará una foto y luego adjuntaré esa imagen a un correo electrónico que irá a una dirección de correo electrónico predeterminada.Android: ¿Cómo enviar una imagen como archivo adjunto de correo electrónico desde la aplicación?
Tengo el correo electrónico en funcionamiento y la cámara está funcionando. Parece que no puedo obtener la imagen que la cámara ha tomado para agregar como archivo adjunto. Tengo la imagen apareciendo en la aplicación como una especie de imagen de vista previa que no tengo problemas para eliminar si es por eso que no se adjuntará.
Cuando se envía el correo electrónico, se crea una imagen pero está dañada y no se abre. Es como si estuviera creando una imagen inexistente. ¡Creo que será un caso de vincular la imagen tomada a la parte del archivo adjunto de creación, pero no tengo ni idea! Si alguien pudiera ayudar, ¡estaría extremadamente agradecido!
Aquí es mi MainActivity
donde se está creando el correo electrónico, junto con la cámara:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.Media;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
public class EmailActivity extends Activity {
Button send;
EditText address, subject, emailtext;
protected static final int CAMERA_PIC_REQUEST = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.email);
send=(Button) findViewById(R.id.emailsendbutton);
address=(EditText) findViewById(R.id.emailaddress);
subject=(EditText) findViewById(R.id.emailsubject);
emailtext=(EditText) findViewById(R.id.emailtext);
send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if
(!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
{
}
File pngDir = new File(
Environment.getExternalStorageDirectory(),
"Android/data/com.phstudios.jbrefurb/quote");
if (!pngDir.exists())
pngDir.mkdirs();
File pngFile = new File(pngDir, "pic1.png");
Uri pngUri = Uri.fromFile(pngFile);
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("image/png");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{ "[email protected]"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject.getText());
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailtext.getText());
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, pngUri);
emailIntent.setType("image/png");
EmailActivity.this.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
}
});
Button camera = (Button) findViewById(R.id.button2);
camera.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
;
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode== 0 && resultCode == Activity.RESULT_OK){
Bitmap x = (Bitmap) data.getExtras().get("data");
((ImageView)findViewById(R.id.imageView1)).setImageBitmap(x);
ContentValues values = new ContentValues();
values.put(Images.Media.TITLE, "title");
values.put(Images.Media.BUCKET_ID, "test");
values.put(Images.Media.DESCRIPTION, "test Image taken");
values.put(Images.Media.MIME_TYPE, "image/png");
Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);
OutputStream outstream;
try {
outstream = getContentResolver().openOutputStream(uri);
x.compress(Bitmap.CompressFormat.JPEG, 70, outstream);
outstream.close();
} catch (FileNotFoundException e) {
//
}catch (IOException e){
//
}
} }
}
estoy esperando su algo simple que simplemente no estoy enlazándolos.
yo sólo lo intentó y funcionó para mí, espero que ayude! Por favor, acepte si lo hace :) – Beast
¡Gracias! ¡Funcionando perfectamente! – PaulH
Acabo de descubrir algo. No enviará el correo electrónico sin que se tome una foto ahora. ¿Todavía hay que enviar el correo electrónico si no se ha tomado una foto? – PaulH