2012-04-22 22 views
11

我試圖通過啓動一個意圖來啓動手機設置短信提供程序。我在下面使用的代碼是我用來啓動意圖的。Android:打開指定多個收件人的SMS活動

Intent sendIntent = new Intent(Intent.ACTION_VIEW); 
    StringBuilder uri = new StringBuilder("sms:"); 
    for (int i = 0; i < contacts.size(); i++) { 
     uri.append(contacts.get(i).getNumber()); 
     uri.append(", "); 
    } 
    sendIntent.putExtra("sms_body", ""); 
    sendIntent.setType("vnd.android-dir/mms-sms"); 
    sendIntent.setData(Uri.parse(uri.toString())); 
    startActivity(sendIntent); 

我特別想使用這種方法,而不是自己發送消息,因此用戶可以使用他們的首選SMS客戶端。我可以用一個數字來解決問題,但不能解決多個問題。我無法在多個收件人的任何地方找到示例。這可能嗎?

預先感謝您

回答

18
Intent smsIntent = new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:5551212;5551212")); 
smsIntent.putExtra("sms_body", "sms message goes here"); 
startActivity(smsIntent); 

電話號碼分號分隔的列表添加到「smsto:」作爲URI的意向構造。 也可以參考這個LINK

+0

謝謝你的工作有錯誤的分隔符 – georgephillips 2012-04-23 09:11:23

+0

它不適用於我打開短信應用程序只顯示一個收件人? – 2016-04-19 10:14:22

6

我試過你的方法,修改很少,對我來說工作正常。這是修改過的代碼。

StringBuilder uri = new StringBuilder("sms:"); 
    for (int i = 0; i < yourarray.length; i++) { 
     uri.append(yourarray[i]); 
     uri.append(", "); 
    } 
    Intent smsIntent = new Intent(Intent.ACTION_VIEW); 
    smsIntent.setType("vnd.android-dir/mms-sms"); 
    smsIntent.setData(Uri.parse(uri.toString())); 
    smsIntent.putExtra("sms_body", "Body of Message"); 
    startActivity(smsIntent); 
相關問題