【问题标题】:Android send SMS to multiple contacts using ArrayListAndroid 使用 ArrayList 向多个联系人发送短信
【发布时间】:2017-07-17 01:01:04
【问题描述】:

我正在编写一个向多个联系人发送 SMS 的应用程序。联系人号码存储在ArrayList 中(从另一个活动收到)。我无法使用此ArrayList 将多个联系人传递给内置的 SMS android 应用程序。这是代码:

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);

我可以通过简单的“for each”循环和覆盖 toString 方法来迭代并将这些联系人打印到 LogCat。

【问题讨论】:

标签: android arraylist sms


【解决方案1】:

使用此代码..

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); 

【讨论】:

  • 感谢您的评论,但应用程序崩溃了,我从日志中复制了几行:05-27 15:38:46.208: E/AndroidRuntime(981): java.lang.NullPointerException 05-27 15:38:46.208: E/AndroidRuntime(981): at com.example.appofthecentury.CreateEventActivity$5.onClick(CreateEventActivity.java:111) 05-27 15:38:46.208: E/AndroidRuntime(981): at android. view.View.performClick(View.java:4204) 05-27 15:38:46.208: E/AndroidRuntime(981): 在 android.view.View$PerformClick.run(View.java:17360)
  • 要与“;”连接,你可以这样做而不是循环:String toNumbers = TextUtils.join(";", numbersArrayList);
  • hi android 是否为联系人大小定义了任何限制?实际上有超过 1000 个联系人用于发送短信。它可以在单次发送点击时适用于所有数千个联系人吗?。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
相关资源
最近更新 更多