我是Android开发的新手。我想从我的后台服务发送一些SMS消息,它将从服务器获取一些数据并将其发送给一些客户端。到目前为止它一直工作得很好,直到他们在短信中添加了一些描述。从那时起,我的一些消息就不会被发送。
这是我到目前为止所做的事情:
for (MessageData messageData : result) {
String message = messageData.getBody();
String recipient = messageData.getRecipient();
int parts_size = smsManager.divideMessage(message).size();
if (parts_size > 1) {
ArrayList<String> parts = smsManager.divideMessage(message);
smsManager.sendMultipartTextMessage(recipient, null, parts, null, null);
} else {
smsManager.sendTextMessage(recipient, null, message, null, null);
}
}
我不知道android是否可以处理for-loop中的发送消息,或者我是否做错了。
感谢您的帮助。
答案 0 :(得分:0)
我尝试关注并使用Mike M's very insightful guidance and code编写一条短信发送服务,该服务将(大或小)消息排入队列,并等待每封消息在发送下一封消息之前完全发送。大多数实际工作都是在后台完成的。
SmsService.java is a gist on GitHub因为粘贴在这里有点大。
我的目标之一是看看我是否可以将必要的功能放入一个Android组件中。它已经过少量的消息测试,但它仍然是实验性的。 (例如,它避免使用BroadcastReceiver,依赖于系统发送的Service startIds的唯一性,很大程度上依赖于意图来表示消息等)。
该类有三种静态方法可用于设置,发送消息和将其删除:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
SmsService.setup(this);
}
private void sendMyMessages() {
SmsService.send(this, recipient, sender, "the message text");
}
@Override
protected void onDestroy() {
SmsService.teardown(this);
...
}