2012-06-22 49 views
4

我使用下面的代码来发送邮件在Android中发送电子邮件后发送Toast?

Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]" }); 
i.putExtra(Intent.EXTRA_CC, new String[] { bcc_string }); 
i.putExtra(Intent.EXTRA_SUBJECT, "Video Suggest"); 
i.putExtra(Intent.EXTRA_TEXT, url_link); 

try { 
    startActivityForResult(Intent.createChooser(i, "Send Mail..."), 1); 
} catch (android.content.ActivityNotFoundException ex) { 
    Toast.makeText(AllVideos.this, "There are no email clients installed.", Toast.LENGTH_SHORT) 
    .show(); 
} 

,并在我的活动结果我用下面的代码

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    // System.out.println("inactivity"); 
    // Toast.makeText(AllVideos.this, "Mail Send", 10).show(); 

    System.out.println("inside activity result"); 

    if (requestCode == 1) { 
     if (requestCode == 1 && resultCode == RESULT_OK) { 
      Toast.makeText(this, "Mail sent.", Toast.LENGTH_SHORT).show(); 

     } else if (requestCode == 1 && resultCode == RESULT_CANCELED) { 
      Toast.makeText(this, "Mail canceled.", Toast.LENGTH_SHORT) 
        .show(); 
     } else { 
      Toast.makeText(this, "Plz try again.", Toast.LENGTH_SHORT) 
        .show(); 
     } 
    } 
} 

但每次我发送或丢弃这个消息我收到“邮件取消“敬酒。 请帮我把这个。

在此先感谢。

+1

我没想到onActivityResult一直在发送邮件 – Blundell

+0

您将无法显示,它不起作用。 –

+0

@Blundell - onActivityResult正在工作,我可以发送邮件,但我只想在发送后显示敬酒。 – Shrikant

回答

3

link

你不能,这不是API的一部分。它返回一旦你按下 发送按钮,即使它不发送

ACTION_SEND没有任何输出,结果你总是得到RESULT_CANCELED默认值。

此外,您无法使用Intent数据检查它,因为它始终为空 邮件发送或放弃。

+0

我想就是这样,因为我尽了全力,每次都得到同样的祝酒。 – Shrikant

-1

试试这个方法。

if (requestCode == 1) 
    { 
     if (resultCode == RESULT_OK) 
     { 
      Toast.makeText(this, "Mail sent.", Toast.LENGTH_SHORT).show(); 

     } 
     else if (resultCode == RESULT_CANCELED) 
     { 
      Toast.makeText(this, "Mail canceled.", Toast.LENGTH_SHORT) 
        .show(); 
     } 
     else 
     { 
      Toast.makeText(this, "Plz try again.", Toast.LENGTH_SHORT) 
        .show(); 
     } 
    } 
+0

尝试了你的代码,但它仍然给我邮件取消吐司。 – Shrikant

+0

我不认为它指定的任何地方的电子邮件活动和短信活动将返回任何结果,可以追溯..因为我已经测试,在我的应用程序,当一个短信活动被称为...它总是返回零...即使消息被发送或没有。 –

+0

这也可能是电子邮件的情况,因为它总是返回RESULT_CANCELED。由于android不知道邮件是否被发送,它永远不会返回RESULT_OK。 – Shrikant