2013-05-27 50 views
2

我正在編寫一個應用程序,它將短信發送給多個聯繫人。聯繫人號碼存儲在ArrayList(從其他活動收到)中。我無法使用此ArrayList將多個聯繫人傳遞到內置的SMS android應用程序。這是代碼:Android使用ArrayList將短信發送到多個聯繫人

ArrayList<String> numbersArrayList=getIntent().getExtras().getStringArrayList("phoneNumbers"); 
String message= "this is a custom message"; 
Intent smsIntent = new Intent(Intent.ACTION_VIEW); 
smsIntent.putExtra("sms_body", message); 
smsIntent.putExtra("address", ??????????); 
smsIntent.setType("vnd.android-dir/mms-sms"); 
startActivity(smsIntent); 

我可以遍歷並打印這些接觸到的logcat簡單的「針對每個」循環和壓倒一切的toString方法。

+1

檢查這個帖子 http://stackoverflow.com/questions/14065910/sending-sms-programmatically-to-multiple-people-getting-generic-error – dracula

+0

請參閱此http://stackoverflow.com/questions/12276712/sending-sms-to-multiple-contacts-using-loop –

回答

7

使用此代碼..

String toNumbers = ""; 
for (String s : numbersArrayList) 
{ 
    toNumbers = toNumbers + s + ";" 
} 
toNumbers = toNumbers.subString(0, toNumbers.length - 1); 
String message= "this is a custom message"; 

Uri sendSmsTo = Uri.parse("smsto:" + toNumbers); 
       Intent intent = new Intent(
         android.content.Intent.ACTION_SENDTO, sendSmsTo); 
       intent.putExtra("sms_body", message); 
       startActivity(intent); 
+0

感謝您的評論,但應用程序崩潰,我從日誌中複製了幾行: 05-27 15:38:46.208:E/AndroidRuntime(981):java.lang.NullPointerException 05-27 15:38:46.208:E/AndroidRuntime(981):\t at com.example.appofthecentury。 CreateEventActivity $ 5.onClick(CreateEventActivity.java:111) 05-27 15:38:46.208:E/AndroidRuntime(981):\t at android.view.View.performClick(View.java:4204) 05-27 15: 38:46.208:E/AndroidRuntime(981):\t在android.view.View $ PerformClick.run(View.java:17360) – undroid

+0

好吧我得到了這個工作,非常感謝提示和技巧! – undroid

+0

連接到「;」,你可以做到這一點,而不是一個循環: String toNumbers = TextUtils.join(「;」,numbersArrayList); – phyzalis

相關問題