【问题标题】:Send SMS To More Than One Recipients向多个收件人发送短信
【发布时间】:2014-03-18 15:18:43
【问题描述】:

我尝试使用doInBackground 中的AsyncTask 在我的android 应用程序中以编程方式发送短信,我有一个我想向其发送短信的收件人列表,问题是如果我在for 循环中发送它们,它有一个不稳定的行为有时应用程序崩溃有时消息未发送...我使用PendingIntent 确保消息离开设备,

 smsManager.sendTextMessage("Mobile_NUmber",null, "MessageText", sentPI, null);

我能否实现某种机制,只有在收到第一条短信PendingIntentBroadcast 后才能发送下一条短信

【问题讨论】:

  • 请看我对这个问题的回答:stackoverflow.com/questions/19083158/…
  • @cYrixmorten tnx 对于您的时间,我肯定会尝试实施您的解决方案,您能否指导我如何使用它来发送给多个收件人,例如在 for 循环中 ...
  • @cYrixmorten 好的,我想我现在明白了……

标签: android android-asynctask android-activity


【解决方案1】:

查看我对这个问题的回答:Send SMS until it is successful

要发送给多个接收者,只需将方法 startMessageServiceIntent 更改为:

private void startMessageServiceIntent(String message, String[] receivers) {
    Intent i = new Intent(context, SMSSender.class);
    i.putExtra(SMSSender.EXTRA_MESSAGE, message);
    i.putExtra(SMSSender.EXTRA_RECEIVERS, receivers);
    startService(i)
}

我记得我花了很长时间进行此实现,并回忆起遇到了一些不太明显的问题,例如需要应用 ID 参数(即使文档声称它没有被使用)以及必须指定 PendingIntent.FLAG_CANCEL_CURRENT .

尽管如此,希望这可以帮助您使其正常工作。

【讨论】:

  • tnx 很多...只是尝试一下,无论如何都会接受:)
  • 好吧,如果它有效,你应该只接受它:p没问题
  • 不得不稍微调整一下代码,但最后它起作用了,只有一个问题,对于很长的消息,我收到很多 PendingIntents,有没有办法我可以获得部分的累积广播一条消息... tnx 寻求帮助...问候
  • 我认为它只会发送每条消息 1 个广播,因为它使用 sendMultipartTextMessage,所以您的意思是添加多个收件人时?您应该能够向意图添加信息,例如 intent.putStringExtra("receiver", receiver),并使用字符串 receiver = intent.getStringExtra("receiver") 在 SentMessage BroadcastReceiver 中检索该信息。
  • tnx 非常愿意和我在一起:) ...我已经设法向 BroadcastReceiver 发送了额外的信息,但是当零件大小为 2 时,SentMessage 被称为多次(2)次而不是1...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多