MMS API: simplified API and bug fixes
- Removed PendingIntents for delivery and read reports to simplify API
definition.
- Fixed a couple bugs related to downloading mms.
b/14095333
Change-Id: I3c591c6b6fc2e3c3397908ac48f6bce01f95e373
diff --git a/src/java/android/telephony/MmsManager.java b/src/java/android/telephony/MmsManager.java
index 2b9a7f6..d486bb5 100644
--- a/src/java/android/telephony/MmsManager.java
+++ b/src/java/android/telephony/MmsManager.java
@@ -36,6 +36,16 @@
private static final MmsManager sInstance = new MmsManager();
+ // MMS send/download failure result codes
+
+ public static final int RESULT_ERROR_UNSPECIFIED = 1;
+ public static final int RESULT_ERROR_INVALID_APN = 2;
+ public static final int RESULT_ERROR_UNABLE_CONNECT_MMS = 3;
+ public static final int RESULT_ERROR_HTTP_FAILURE = 4;
+
+ // Intent extra name for result data
+ public static final String EXTRA_DATA = "data";
+
/**
* Get the default instance of the MmsManager
*
@@ -53,15 +63,11 @@
* Send an MMS message
*
* @param pdu the MMS message encoded in standard MMS PDU format
+ * @param locationUrl the optional location url where message should be sent to
* @param sentIntent if not NULL this <code>PendingIntent</code> is
* broadcast when the message is successfully sent, or failed
- * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
- * broadcast when the message is delivered to the recipient
- * @param readIntent if not NULL this <code>PendingIntent</code> is
- * broadcast when the message is read by the recipient
*/
- public void sendMessage(byte[] pdu, PendingIntent sentIntent, PendingIntent deliveryIntent,
- PendingIntent readIntent) {
+ public void sendMessage(byte[] pdu, String locationUrl, PendingIntent sentIntent) {
if (pdu == null || pdu.length == 0) {
throw new IllegalArgumentException("Empty or zero length PDU");
}
@@ -71,7 +77,7 @@
Log.e(LOG_TAG, "Can not find Mms service");
return;
}
- iMms.sendMessage(pdu, sentIntent, deliveryIntent, readIntent);
+ iMms.sendMessage(pdu, locationUrl, sentIntent);
} catch (RemoteException e) {
// Ignore it
}
@@ -82,23 +88,20 @@
*
* @param locationUrl the location URL of the MMS message to be downloaded, usually obtained
* from the MMS WAP push notification
- * @param transactionId the transaction ID of the MMS message, usually obtained from the
- * MMS WAP push notification
* @param downloadedIntent if not NULL this <code>PendingIntent</code> is
* broadcast when the message is downloaded, or the download is failed
*/
- public void downloadMessage(String locationUrl, String transactionId,
- PendingIntent downloadedIntent) {
+ public void downloadMessage(String locationUrl, PendingIntent downloadedIntent) {
if (TextUtils.isEmpty(locationUrl)) {
throw new IllegalArgumentException("Empty MMS location URL");
}
try {
final IMms iMms = IMms.Stub.asInterface(ServiceManager.getService(SERVICE));
- if (iMms != null) {
+ if (iMms == null) {
Log.e(LOG_TAG, "Can not find Mms service");
return;
}
- iMms.downloadMessage(locationUrl, transactionId, downloadedIntent);
+ iMms.downloadMessage(locationUrl, downloadedIntent);
} catch (RemoteException e) {
// Ignore it
}
diff --git a/src/java/com/android/internal/telephony/mms/IMms.aidl b/src/java/com/android/internal/telephony/mms/IMms.aidl
index 6f410c2..3f5ed9d 100644
--- a/src/java/com/android/internal/telephony/mms/IMms.aidl
+++ b/src/java/com/android/internal/telephony/mms/IMms.aidl
@@ -26,25 +26,19 @@
* Send an MMS message
*
* @param pdu the MMS message encoded in standard MMS PDU format
+ * @param locationUrl the optional location url for where this message should be sent to
* @param sentIntent if not NULL this <code>PendingIntent</code> is
* broadcast when the message is successfully sent, or failed
- * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
- * broadcast when the message is delivered to the recipient
- * @param readIntent if not NULL this <code>PendingIntent</code> is
- * broadcast when the message is read by the recipient
*/
- void sendMessage(in byte[] pdu, in PendingIntent sentIntent, in PendingIntent deliveryIntent,
- in PendingIntent readIntent);
+ void sendMessage(in byte[] pdu, String locationUrl, in PendingIntent sentIntent);
/**
* Download an MMS message using known location and transaction id
*
- * @param location the location URL of the MMS message to be downloaded, usually obtained
+ * @param locationUrl the location URL of the MMS message to be downloaded, usually obtained
* from the MMS WAP push notification
- * @param transactionId the transaction ID of the MMS message, usually obtained from the
- * MMS WAP push notification
* @param downloadedIntent if not NULL this <code>PendingIntent</code> is
* broadcast when the message is downloaded, or the download is failed
*/
- void downloadMessage(String location, String transactionId, in PendingIntent downloadedIntent);
+ void downloadMessage(String locationUrl, in PendingIntent downloadedIntent);
}