Android - 发送许多多部分消息会错过其中一些
Android - Sending Many multi-part Messages will miss some of them
我是 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 循环中处理发送消息,或者我是否做错了什么。
感谢您的帮助。
我尝试遵循并使用 Mike M's very insightful guidance and code 编写一个 SMS 消息发送服务,该服务将(大的或小的)消息排入队列并等待每条消息完全发送后再发送下一条消息。大部分实际工作都是在后台完成的。
SmsService.java is a gist on GitHub因为这里粘贴有点大
我的目标之一是看看我是否可以将必要的功能放入一个 android 组件中。它已经过少量消息的测试,但仍处于试验阶段。 (例如,它避免使用 BroadcastReceiver,依赖于系统发送的服务 startId 的唯一性,严重依赖于表示消息的意图等)
class 有三个静态方法用于设置、发送消息和拆除:
@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);
...
}
我是 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 循环中处理发送消息,或者我是否做错了什么。
感谢您的帮助。
我尝试遵循并使用 Mike M's very insightful guidance and code 编写一个 SMS 消息发送服务,该服务将(大的或小的)消息排入队列并等待每条消息完全发送后再发送下一条消息。大部分实际工作都是在后台完成的。
SmsService.java is a gist on GitHub因为这里粘贴有点大
我的目标之一是看看我是否可以将必要的功能放入一个 android 组件中。它已经过少量消息的测试,但仍处于试验阶段。 (例如,它避免使用 BroadcastReceiver,依赖于系统发送的服务 startId 的唯一性,严重依赖于表示消息的意图等)
class 有三个静态方法用于设置、发送消息和拆除:
@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);
...
}