diff options
| -rw-r--r-- | api/current.txt | 11 | ||||
| -rw-r--r-- | services/core/java/com/android/server/MmsServiceBroker.java | 9 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/IMms.aidl | 31 |
3 files changed, 34 insertions, 17 deletions
diff --git a/api/current.txt b/api/current.txt index 1959c79b..9686baf 100644 --- a/api/current.txt +++ b/api/current.txt @@ -25737,6 +25737,8 @@ package android.provider { public static final class Telephony.Mms.Intents { field public static final java.lang.String CONTENT_CHANGED_ACTION = "android.intent.action.CONTENT_CHANGED"; field public static final java.lang.String DELETED_CONTENTS = "deleted_contents"; + field public static final java.lang.String EXTRA_MMS_CONTENT_URI = "android.provider.Telephony.extra.MMS_CONTENT_URI"; + field public static final java.lang.String EXTRA_MMS_LOCATION_URL = "android.provider.Telephony.extra.MMS_LOCATION_URL"; field public static final java.lang.String MMS_DOWNLOAD_ACTION = "android.provider.Telephony.MMS_DOWNLOAD"; field public static final java.lang.String MMS_SEND_ACTION = "android.provider.Telephony.MMS_SEND"; } @@ -28864,16 +28866,16 @@ package android.telephony { public final class SmsManager { method public java.util.ArrayList<java.lang.String> divideMessage(java.lang.String); - method public void downloadMultimediaMessage(java.lang.String, android.net.Uri, android.os.Bundle, android.app.PendingIntent); + method public void downloadMultimediaMessage(android.content.Context, java.lang.String, android.net.Uri, android.os.Bundle, android.app.PendingIntent); method public android.os.Bundle getCarrierConfigValues(); method public static android.telephony.SmsManager getDefault(); method public void injectSmsPdu(byte[], java.lang.String, android.app.PendingIntent); method public void sendDataMessage(java.lang.String, java.lang.String, short, byte[], android.app.PendingIntent, android.app.PendingIntent); - method public void sendMultimediaMessage(android.net.Uri, java.lang.String, android.os.Bundle, android.app.PendingIntent); + method public void sendMultimediaMessage(android.content.Context, android.net.Uri, java.lang.String, android.os.Bundle, android.app.PendingIntent); method public void sendMultipartTextMessage(java.lang.String, java.lang.String, java.util.ArrayList<java.lang.String>, java.util.ArrayList<android.app.PendingIntent>, java.util.ArrayList<android.app.PendingIntent>); method public void sendTextMessage(java.lang.String, java.lang.String, java.lang.String, android.app.PendingIntent, android.app.PendingIntent); - method public void updateMmsDownloadStatus(int, byte[]); - method public void updateMmsSendStatus(int, boolean); + method public void updateMmsDownloadStatus(android.content.Context, int, int, android.net.Uri); + method public void updateMmsSendStatus(android.content.Context, int, byte[], int, android.net.Uri); method public void updateSmsSendStatus(int, boolean); field public static final java.lang.String EXTRA_MMS_DATA = "android.telephony.extra.MMS_DATA"; field public static final java.lang.String MMS_CONFIG_ALIAS_ENABLED = "aliasEnabled"; @@ -28908,6 +28910,7 @@ package android.telephony { field public static final int MMS_ERROR_HTTP_FAILURE = 4; // 0x4 field public static final int MMS_ERROR_INVALID_APN = 2; // 0x2 field public static final int MMS_ERROR_IO_ERROR = 5; // 0x5 + field public static final int MMS_ERROR_RETRY = 6; // 0x6 field public static final int MMS_ERROR_UNABLE_CONNECT_MMS = 3; // 0x3 field public static final int MMS_ERROR_UNSPECIFIED = 1; // 0x1 field public static final int RESULT_ERROR_GENERIC_FAILURE = 1; // 0x1 diff --git a/services/core/java/com/android/server/MmsServiceBroker.java b/services/core/java/com/android/server/MmsServiceBroker.java index b452a38..0fb80c9 100644 --- a/services/core/java/com/android/server/MmsServiceBroker.java +++ b/services/core/java/com/android/server/MmsServiceBroker.java @@ -219,15 +219,16 @@ public class MmsServiceBroker extends SystemService { } @Override - public void updateMmsSendStatus(int messageRef, boolean success) throws RemoteException { + public void updateMmsSendStatus(int messageRef, byte[] pdu, int status) + throws RemoteException { enforceCarrierPrivilege(); - getServiceGuarded().updateMmsSendStatus(messageRef, success); + getServiceGuarded().updateMmsSendStatus(messageRef, pdu, status); } @Override - public void updateMmsDownloadStatus(int messageRef, byte[] pdu) throws RemoteException { + public void updateMmsDownloadStatus(int messageRef, int status) throws RemoteException { enforceCarrierPrivilege(); - getServiceGuarded().updateMmsDownloadStatus(messageRef, pdu); + getServiceGuarded().updateMmsDownloadStatus(messageRef, status); } @Override diff --git a/telephony/java/com/android/internal/telephony/IMms.aidl b/telephony/java/com/android/internal/telephony/IMms.aidl index 4337012..ebfefd1 100644 --- a/telephony/java/com/android/internal/telephony/IMms.aidl +++ b/telephony/java/com/android/internal/telephony/IMms.aidl @@ -62,24 +62,37 @@ interface IMms { /** * Update the status of a pending (send-by-IP) MMS message handled by the carrier app. - * If the carrier app fails to send this message, it would be resent via carrier network. + * If the carrier app fails to send this message, it may be resent via carrier network + * depending on the status code. + * + * The caller should have carrier privileges. + * @see android.telephony.TelephonyManager.hasCarrierPrivileges * * @param messageRef the reference number of the MMS message. - * @param success True if and only if the message was sent successfully. If its value is - * false, this message should be resent via carrier network + * @param pdu non-empty (contains the SendConf PDU) if the message was sent successfully, + * otherwise, this param should be null. + * @param status send status. It can be Activity.RESULT_OK or one of the MMS error codes. + * If status is Activity.RESULT_OK, the MMS was sent successfully. + * If status is MMS_ERROR_RETRY, this message would be resent via carrier + * network. The message will not be resent for other MMS error statuses. */ - void updateMmsSendStatus(int messageRef, boolean success); + void updateMmsSendStatus(int messageRef, in byte[] pdu, in int status); /** * Update the status of a pending (download-by-IP) MMS message handled by the carrier app. - * If the carrier app fails to download this message, it would be re-downloaded via carrier - * network. + * If the carrier app fails to download this message, it may be re-downloaded via carrier + * network depending on the status code. + * + * The caller should have carrier privileges. + * @see android.telephony.TelephonyManager.hasCarrierPrivileges * * @param messageRef the reference number of the MMS message. - * @param pdu non-empty if downloaded successfully, otherwise, it is empty and the message - * will be downloaded via carrier network + * @param status download status. It can be Activity.RESULT_OK or one of the MMS error codes. + * If status is Activity.RESULT_OK, the MMS was downloaded successfully. + * If status is MMS_ERROR_RETRY, this message would be re-downloaded via carrier + * network. The message will not be re-downloaded for other MMS error statuses. */ - void updateMmsDownloadStatus(int messageRef, in byte[] pdu); + void updateMmsDownloadStatus(int messageRef, in int status); /** * Get carrier-dependent configuration values. |
