Ты вроде как можешь, но это некрасиво и не элегантно. Я поработаю над этим.
Основная проблема: после того, как электронное письмо отправлено, вы попадаете на черный экран, в верхней части которого находится только название вашего приложения.
Я сделаю «нажмите Enter, чтобы продолжить» или что-нибудь еще, если потребуется.
В любом случае: сначала фрагмент из основного класса записывает отчет на SDCard, а затем вызывает действие, которое отправит электронную почту.
WriteReportToStorage();
Intent Emailreport = new Intent(bvsactivity.this, Emailreport.class);
startActivityForResult(Emailreport,emailreport_ran);
Далее, в классе emailreport мы делаем стандартный код отправки письма + вложения:
public class Emailreport extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Intent email = new Intent(android.content.Intent.ACTION_SEND);
email.setType("text/html
");
email.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject");
email.putExtra(android.content.Intent.EXTRA_TEXT, "body");
email.putExtra(android.content.Intent.EXTRA_STREAM, Uri.parse("file:/" + Environment.getExternalStorageDirectory() + "//Report.html"));
startActivity(Intent.createChooser(email, "Email:"));
}
Наконец, вернемся в ваш «основной» класс, результат onactivityresult, удаляющий файл SDCard:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Actions based on which menu item we chose.
if (requestCode == emailreport_ran) {boolean deleted = reportfile.delete(); emailreport_ran = 1;}
}
}