У меня довольно простое приложение, которое отправляет SMS на список телефонных номеров. Приложение разбивает сообщение на части, а затем отправляет, используя sendMultipartTextMessage()
. Он отправляет на следующий номер телефона только после отправки предыдущего сообщения (очень похоже на этот метод ).
Я обнаружил, что если количество символов SMS такое, что оно не является составным сообщением, то оно отправляется очень быстро. Однако если я отправлю сообщение, состоящее из нескольких частей, это займет значительно больше времени.
Например, если я отправляю одну часть SMS на 200 номеров, это занимает около 5 минут.
Если я отправлю 2-компонентное SMS на те же 200 номеров, это займет более 30 минут.
Это как-то связано с Android и как он обрабатывает многочастные сообщения? Почему было бы в несколько раз длиннее, а не примерно вдвое больше (в приведенном выше случае)? Я проверил это достаточно раз, чтобы понять, что это не связано с условиями сети или совпадением и т. Д.
И можно ли что-нибудь сделать, чтобы улучшить это?
Отрывок короткого кода:
ArrayList<String> parts = smsManager.divideMessage(msg);
final int numParts = parts.size()
sentIntent.putExtra(EXTRA_NUMBER, number);
sentIntent.putExtra(EXTRA_MESSAGE, msg);
smsManager.sendMultipartTextMessage(number, null, parts, sentIntents, delIntents);
Редактировать: если невозможно объяснить, что происходит, кто-нибудь может предложить, как я могу проанализировать, какая часть программного обеспечения вызывает задержку при отправке сообщения из нескольких частей?