Android-从Android应用程序发送电子邮件后的结果
可能的重复项:& 我想在我的Android应用程序中发送一封电子邮件 我知道您可以通过以下代码来实现这一点:Android-从Android应用程序发送电子邮件后的结果,android,email,android-intent,android-activity,onactivityresult,Android,Email,Android Intent,Android Activity,Onactivityresult,可能的重复项:& 我想在我的Android应用程序中发送一封电子邮件 我知道您可以通过以下代码来实现这一点: private void sendEmail(){ Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("message/rfc822"); intent.putExtra(Intent.EXTRA_EMAIL, { "some_email1@gmail.com", "some_email2
private void sendEmail(){
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("message/rfc822");
intent.putExtra(Intent.EXTRA_EMAIL, { "some_email1@gmail.com", "some_email2@gmail.com" });
intent.putExtra(Intent.EXTRA_SUBJECT, "My Subject");
intent.putExtra(Intent.EXTRA_TEXT, "My message");
try{
startActivity(Intent.createChooser(intent, "Send E-Mail"));
}
catch(ActivityNotFoundException ex){
Toast.makeText(this, "There are no E-mail Clients installed on your Device.", Toast.LENGTH_LONG).show();
}
}
我想知道的是,邮件是否成功发送,或者用户是否取消了邮件(或者出现了其他问题)
我确实尝试过改变:
startActivity(Intent.createChooser(intent, "Send E-Mail"));
到
并添加onActivityResult方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
// We come back after the starting Email Activity Client
if(requestCode == 123){
// Mail is successfully send:
if(resultCode == Activity.RESULT_OK){
// Do something
}
else
// Do something else
}
}
}
但是无论成功与否,Intent.ACTION\u SEND
只给出0的结果代码(等于Activity.RESULT\u cancelled
)
所以我的问题是:有没有人知道如何解决这个问题,在使用电子邮件意图时捕获并使用结果还是有人知道从Android应用程序中发送电子邮件的完全不同(自定义)方式,这使我能够使用结果?(请提供代码示例。)
提前感谢您的回复
编辑:将问题的第二部分加粗,以表明这不是一个完全重复的问题。@AleksG我知道这一点,并已在问题的开头添加了这一点。>>那你为什么还要问一个重复的问题?答案是一样的——你做不到。如果您需要得到结果,那么您必须自己实现电子邮件机制。这并不难,网上有大量的信息-只需搜索@AleksG谢谢你的编辑,你评论的第二部分很有希望。好的,我最终使用了。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
// We come back after the starting Email Activity Client
if(requestCode == 123){
// Mail is successfully send:
if(resultCode == Activity.RESULT_OK){
// Do something
}
else
// Do something else
}
}
}