Ответ 1
Вы не можете, это не часть API. Он возвращается после нажатия кнопки отправки, даже если он не отправлен
Я использую намерение для отправки электронной почты с вложением, это нормально работает, я хочу получить этот результат намерения электронной почты, я уже использовал startActivityforResult()
, но я не могу получить результат для намерения электронной почты, как мы можем использовать startActivityforResult()
для намерения электронной почты?
Спасибо всем
Вы не можете, это не часть API. Он возвращается после нажатия кнопки отправки, даже если он не отправлен
Вы вроде как можете, но это уродливое и неэлегантное. Я буду работать над сглаживанием этого. Основная проблема: после отправки сообщения вы попадаете на черный экран с заголовком приложения вверху.
Я сделаю "enter enter to continue" или что-то, если мне нужно.
В любом случае: первый фрагмент из основного класса записывает отчет в 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;}
}
}