2013-05-27 48 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

相关问题