我想发送电子邮件以及最近从我的相机应用中捕获的图像。问题是我无法将图像自动附加到电子邮件。那么,我该怎么做才能使图像自动附加到电子邮件上?
CameraActivity.java
public class CameraActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
ImageView imageView;
File image;
private boolean isUserClickedBackButton = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
dispatchPictureTakeAction();
} catch (IOException e) {
e.printStackTrace();
}
}
});
imageView = (ImageView) this.findViewById(R.id.capturedImage);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK) {
Bitmap bitmap = BitmapFactory.decodeFile(currentPhotoPath);
imageView.setImageBitmap(bitmap);
imageView.setBackgroundColor(0);
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Cancelled", Toast.LENGTH_SHORT).show();
}
}
private void dispatchPictureTakeAction() throws IOException {
Intent takePic = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePic.resolveActivity(getPackageManager()) != null) {
File photoFile = createPhotoFile();
if (photoFile != null) {
Uri photoUri = FileProvider.getUriForFile(HomeActivity.this, "com.example.brainyfools.fileprovider", photoFile);
takePic.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(takePic, 1);
}
}
}
String currentPhotoPath;
String imageFileName;
private File createPhotoFile() throws IOException {
String name = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
imageFileName = "JPEG_" + name + "_";
File storageDir = getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
image = File.createTempFile(imageFileName, ".jpg", storageDir);
currentPhotoPath = image.getAbsolutePath();
return image;
}
}
ComplaintActivity.java
public class ComplaintActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_complaint_activity);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
floatingActionMenu = (FloatingActionMenu) findViewById(R.id.floatingActionMenu);
fab1 = (FloatingActionButton) findViewById(R.id.fab1);
fab1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent imgSrc = getIntent();
String imgUrl = imgSrc.getStringExtra("imgurl");
File file = new File(imgUrl);
if (!file.exists() || !file.canRead()) {
return;
}
Uri uri = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"xyz123@gmail.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
intent.putExtra(Intent.EXTRA_TEXT, details);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(uri, "image/*");
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType("application/image");
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
});
}
}