2010-06-28 35 views
3

我有一個應用程序有兩個按鈕 - 一個用於發送短信的電子郵件&。根據按下的按鈕,我想通過電子郵件發送短信或發送特定的短信。我編寫了電子郵件按鈕,它工作正常。問題是彈出的對話框提供了電子郵件或文本消息的選項。我想分開這兩個,所以當用戶按下電子郵件時,只有電子郵件的選項在那裏,並且當用戶按下SMS時,只有消息選項在那裏。Android:電子郵件和短信單獨意圖

這是我試過的代碼。

private void sendEmail(){ 
    Intent i = new Intent(Intent.ACTION_SEND); 
    i.setType("text/plain"); 
    i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
    i.putExtra(Intent.EXTRA_SUBJECT, "Subject of the message"); 
    i.putExtra(Intent.EXTRA_TEXT , "Body of the message"); 
    try { 
     startActivity(Intent.createChooser(i, "Send mail...")); 
    } catch (android.content.ActivityNotFoundException ex) { 
     Toast.makeText(this, "There are no email clients installed.", Toast.LENGTH_SHORT).show(); 
    } 
} 

基本上似乎有兩個電子郵件&消息一個意圖Intent.ACTION_SEND。

任何方式將它們分開?

回答

5

你可以用這樣的預填充消息啓動信息應用程序:

Intent sendIntent = new Intent(Intent.ACTION_VIEW); 
sendIntent.putExtra("sms_body", "The SMS text"); 
sendIntent.setType("vnd.android-dir/mms-sms"); 
startActivity(sendIntent); 

或做這樣的事情,只是送了出去,沒有呈現短信應用:

Uri uri = Uri.parse("smsto:0800000123"); 
Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
it.putExtra("sms_body", "The SMS text"); 
startActivity(it); 
+0

我用了第一個(因爲我想推出SMS ap p給用戶編輯文本的機會)。它很棒!就像你爲短信的setType使用「vnd.android-dir/mms-sms」一樣,你碰巧知道用於發送電子郵件的字符串嗎? – OceanBlue 2010-07-01 19:34:27

-3

字符串僅用於發送電子郵件是:

email.setType("message/rfc822"); 
相關問題