【发布时间】:2016-03-17 12:54:02
【问题描述】:
我每天发送超过 400 条短信,但只有大约 95% 的短信我收到了发送到广播接收器的短信。消息每隔 5 秒发送一次。
ArrayList<String> partsArray = SmsManager.getDefault().divideMessage(this.message);
ArrayList<PendingIntent> sentPendingIntents = new ArrayList<>(partsArray.size());
ArrayList<PendingIntent> deliveredPendingIntents = new ArrayList<>(partsArray.size());
.....
for (int i = 0; i < partsArray.size(); i++) {
sentIntent = new Intent("SMS_SENT_2");
deliveredIntent = new Intent(C.SMS_DELIVERED);
sentPI = PendingIntent.getBroadcast(context, 0,sentIntent, PendingIntent.FLAG_ONE_SHOT);
deliveredPI = PendingIntent.getBroadcast(context, 0, deliveredIntent, PendingIntent.FLAG_ONE_SHOT);
sentPendingIntents.add(sentPI);
deliveredPendingIntents.add(deliveredPI);
}
SmsManager sms = SmsManager.getDefault();
sms.sendMultipartTextMessage(phoneNumber, null,partsArray, sentPendingIntents, deliveredPendingIntents);
以及清单中的广播接收器:
<receiver android:name="._broadcastReceivers.SMSSentBroadcastReceiver">
<intent-filter android:priority="999">
<action android:name="SMS_SENT_2" />
</intent-filter>
</receiver>
我知道,对于某些消息,广播接收者没有得到意图,但实际上发送了短信。
如何可靠地确定短信是否“离开手机”?
【问题讨论】:
标签: android android-intent broadcastreceiver sms android-pendingintent