2012-06-22 4 views
4

Я использую следующий код для отправки почтыПоказать тост после отправки по электронной почте в android?

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.

Также вы НЕ можете проверить его с данными о намерениях, возвращаясь, потому что это всегда нулевое значение либо отправьте или отмените почту.

+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

Я не думаю, что он указан в любом месте, где активность электронной почты и активность SMS будут возвращать любой результат, который можно проследить .. потому что я протестировал это в своем приложении, что при вызове sms-активности ... он всегда возвращает Zero ... даже если сообщение отправлено или нет. –

+0

Это может быть и для электронной почты, так как она всегда возвращает RESULT_CANCELED. И поскольку андроид не знает, отправлена ​​ли почта или нет, она никогда не вернет RESULT_OK. – Shrikant

Смежные вопросы