WorkingMessage获取将要发送的短信:
首先刷新收信人,然后创建SmsMessageSender类并调用sendMessage()发送短信。
private void sendSmsWorker(String msgText, String semiSepRecipients, long threadId, int simId) {
String[] dests = TextUtils.split(semiSepRecipients, ";");
MessageSender sender = new SmsMessageSender(mActivity, dests, msgText, threadId);
// 双卡支持 @{
sender.setSimId(simId);
// @}
try {
sender.sendMessage(threadId);//调用SmsMessageSender的sendMessage方法发送短信
// 确认该线程没有超过最大短信数
Recycler.getSmsRecycler().deleteOldMessagesByThreadId(mActivity, threadId);
} catch (Exception e) {
Log.e(TAG, "Failed to send SMS message, threadId=" + threadId, e);
}
mStatusListener.onMessageSent();
MmsWidgetProvider.notifyDatasetChanged(mActivity);
/// M:
SmsReceiverService.sSmsSent = false;
}
}
在sendMessage()方法中实际调用queueMessage(),相当于将短信加入到发送队列。看看queueMessage()的实现。
private boolean queueMessage(long token) throws MmsException {
if ((mMessageText == nul