Obecnie próbuję utworzyć aplikację, która zrobi zdjęcie, a następnie dołączę to zdjęcie do wiadomości e-mail, która przejdzie do wstępnie określonego adresu e-mail.Android: Jak wysłać obraz jako załącznik wiadomości e-mail z aplikacji?
Mam działającą pocztę i mam działającą kamerę. Nie mogę uzyskać obrazu, który kamera zrobiła jako załącznik. Mam obraz wyskakujący w aplikacji jako rodzaj podglądu obrazu, którego nie mam problemu z usunięciem, jeśli to jest powód, dla którego to nie przyłączy.
Po wysłaniu wiadomości e-mail zdjęcie zostało utworzone, ale jest uszkodzone i nie zostaje otwarte. To tak, jakbym tworzył nieistniejący obraz. Myślę, że będzie to wiązało się z zawiązaniem zdjęcia do tworzenia części do załącznika, ale nie mam pojęcia! Gdyby ktokolwiek mógł mi pomóc, byłbym bardzo wdzięczny!
Oto mój MainActivity
gdzie e-mail jest tworzony wraz z aparatem:
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){
//
}
} }
}
Mam nadzieję, że jej coś proste, że po prostu nie jestem łączący je ze sobą.
Właśnie spróbowałem i pracował dla mnie, mam nadzieję, że to pomaga! Proszę zaakceptuj, jeśli to zrobi :) – Beast
Dziękujemy! Działa idealnie! – PaulH
Właśnie coś odkryłem. Nie wyślesz e-maila bez zrobienia zdjęcia. Czy jest tam, aby nadal wysyłać wiadomość e-mail, jeśli zdjęcie nie zostało zrobione? – PaulH