Lele was written in 2021
Lele was written in 2021
MMS发送流程代码版droid
MMS发送流程(代码版)
apps/Mms
1. 点击发送按钮Src/com/android/mms/ui/
public void onClick(View v) {
if ((v == mSendButton) && isPreparedForSending()) {
confirmSendMessageIfNeeded(); etIcon .setTitle(title)
.setMessage .setPositiveButton newSendIgnoreInvalidRecipientListener())
.setNegativeButton new CancelSendingListener())
.show();
} else {etIcon .setTitle .setMessage .setPositiveButton new CancelSendingListener())
.show();
}
} else {src/com/android/mms/ui/
private void sendMessage(boolean bCheckEcmMode) {
(TAG, "sendMessage");
if (bCheckEcmMode) {
Make sure we remove the listeners firstand then add
removeRecipientsListeners(); if (mExitOnSent) {src/com/android/mms/data/
/**
* Send this message over the network. Will call back with onMessageSent() once
* it has been dispatched to the telephonystack. This WorkingMessage object is
* no longer useful after this method hasbeen called.
*/
public void send() {
if , ) {
("send");
}
?
prepareForSave(true /* notify */); final Conversation conv = mConversation;
String msgTxt = ();
(TAG, "msgText = " + msgTxt);
if (requiresMms()|| addressContainsEmailToMms(conv, msgTxt)) {
final Uri mmsUri = mMessageUri; new Thread(new Runnable() {
public void run() {
();
sendMmsWorker(conv, mmsUri, persister, slideshow, sendReq);
}
}).start();
}else {
final String msgText = ();tart();
}
?
mDiscarded = true;
}
?
5. src/com/android/mms/data/
private void sendMmsWorker(Conversation conv, Uri mmsUri, PduPersisterpersister, SlideshowModel slideshow, SendReq sendReq) {
(TAG, "sendMmsWorker");
(mContext);
?
Cursor cursor = null;
try {
cursor = (mContext, mContentResolver,
null, null, null);
if (cursor != null) {Allow it to be saved as a draft.
();
return;
}
}else{
(TAG, "query is empty");
}
} finally {
if (cursor != null) {
();
}
}
();
?