summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt18
-rw-r--r--services/core/java/com/android/server/MmsServiceBroker.java60
-rw-r--r--telephony/java/com/android/internal/telephony/IMms.aidl50
3 files changed, 43 insertions, 85 deletions
diff --git a/api/current.txt b/api/current.txt
index 851d20f4d32e..5f23a3675dfa 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -29262,12 +29262,12 @@ package android.telephony {
public class MessagingConfigurationManager {
method public boolean getCarrierConfigBoolean(java.lang.String, boolean);
+ method public boolean getCarrierConfigBoolean(long, java.lang.String, boolean);
method public int getCarrierConfigInt(java.lang.String, int);
+ method public int getCarrierConfigInt(long, java.lang.String, int);
method public java.lang.String getCarrierConfigString(java.lang.String, java.lang.String);
+ method public java.lang.String getCarrierConfigString(long, java.lang.String, java.lang.String);
method public static android.telephony.MessagingConfigurationManager getDefault();
- method public void setCarrierConfigBoolean(java.lang.String, boolean);
- method public void setCarrierConfigInt(java.lang.String, int);
- method public void setCarrierConfigString(java.lang.String, java.lang.String);
field public static final java.lang.String CONF_ALIAS_ENABLED = "aliasEnabled";
field public static final java.lang.String CONF_ALIAS_MAX_CHARS = "aliasMaxChars";
field public static final java.lang.String CONF_ALIAS_MIN_CHARS = "aliasMinChars";
@@ -29446,19 +29446,19 @@ package android.telephony {
method public boolean deleteStoredConversation(long);
method public boolean deleteStoredMessage(android.net.Uri);
method public java.util.ArrayList<java.lang.String> divideMessage(java.lang.String);
- method public void downloadMultimediaMessage(java.lang.String, android.app.PendingIntent);
- method public void downloadMultimediaMessage(long, java.lang.String, android.app.PendingIntent);
+ method public void downloadMultimediaMessage(java.lang.String, android.content.ContentValues, android.app.PendingIntent);
+ method public void downloadMultimediaMessage(long, java.lang.String, android.content.ContentValues, android.app.PendingIntent);
method public boolean getAutoPersisting();
method public static android.telephony.SmsManager getDefault();
method public android.net.Uri importMultimediaMessage(byte[], java.lang.String, long, boolean, boolean);
method public android.net.Uri importTextMessage(java.lang.String, int, java.lang.String, long, boolean, boolean);
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(byte[], java.lang.String, android.app.PendingIntent);
- method public void sendMultimediaMessage(long, byte[], java.lang.String, android.app.PendingIntent);
+ method public void sendMultimediaMessage(byte[], java.lang.String, android.content.ContentValues, android.app.PendingIntent);
+ method public void sendMultimediaMessage(long, byte[], java.lang.String, android.content.ContentValues, 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 sendStoredMultimediaMessage(android.net.Uri, android.app.PendingIntent);
- method public void sendStoredMultimediaMessage(long, android.net.Uri, android.app.PendingIntent);
+ method public void sendStoredMultimediaMessage(android.net.Uri, android.content.ContentValues, android.app.PendingIntent);
+ method public void sendStoredMultimediaMessage(long, android.net.Uri, android.content.ContentValues, android.app.PendingIntent);
method public void sendStoredMultipartTextMessage(android.net.Uri, java.lang.String, java.util.ArrayList<android.app.PendingIntent>, java.util.ArrayList<android.app.PendingIntent>);
method public void sendStoredMultipartTextMessage(long, android.net.Uri, java.lang.String, java.util.ArrayList<android.app.PendingIntent>, java.util.ArrayList<android.app.PendingIntent>);
method public void sendStoredTextMessage(android.net.Uri, java.lang.String, android.app.PendingIntent, android.app.PendingIntent);
diff --git a/services/core/java/com/android/server/MmsServiceBroker.java b/services/core/java/com/android/server/MmsServiceBroker.java
index 898b6f1106ab..df54c7fe289b 100644
--- a/services/core/java/com/android/server/MmsServiceBroker.java
+++ b/services/core/java/com/android/server/MmsServiceBroker.java
@@ -191,25 +191,28 @@ public class MmsServiceBroker extends SystemService {
private final class BinderService extends IMms.Stub {
@Override
public void sendMessage(long subId, String callingPkg, byte[] pdu, String locationUrl,
- PendingIntent sentIntent) throws RemoteException {
+ ContentValues configOverrides, PendingIntent sentIntent) throws RemoteException {
mContext.enforceCallingPermission(Manifest.permission.SEND_SMS, "Send MMS message");
if (getAppOpsManager().noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(),
callingPkg) != AppOpsManager.MODE_ALLOWED) {
return;
}
- getServiceGuarded().sendMessage(subId, callingPkg, pdu, locationUrl, sentIntent);
+ getServiceGuarded().sendMessage(subId, callingPkg, pdu, locationUrl, configOverrides,
+ sentIntent);
}
@Override
public void downloadMessage(long subId, String callingPkg, String locationUrl,
- PendingIntent downloadedIntent) throws RemoteException {
+ ContentValues configOverrides, PendingIntent downloadedIntent)
+ throws RemoteException {
mContext.enforceCallingPermission(Manifest.permission.RECEIVE_MMS,
"Download MMS message");
if (getAppOpsManager().noteOp(AppOpsManager.OP_RECEIVE_MMS, Binder.getCallingUid(),
callingPkg) != AppOpsManager.MODE_ALLOWED) {
return;
}
- getServiceGuarded().downloadMessage(subId, callingPkg, locationUrl, downloadedIntent);
+ getServiceGuarded().downloadMessage(subId, callingPkg, locationUrl, configOverrides,
+ downloadedIntent);
}
@Override
@@ -225,53 +228,21 @@ public class MmsServiceBroker extends SystemService {
}
@Override
- public boolean getCarrierConfigBoolean(String name, boolean defaultValue)
- throws RemoteException {
- return getServiceGuarded().getCarrierConfigBoolean(name, defaultValue);
- }
-
- @Override
- public int getCarrierConfigInt(String name, int defaultValue) throws RemoteException {
- return getServiceGuarded().getCarrierConfigInt(name, defaultValue);
- }
-
- @Override
- public String getCarrierConfigString(String name, String defaultValue)
- throws RemoteException {
- return getServiceGuarded().getCarrierConfigString(name, defaultValue);
- }
-
- @Override
- public void setCarrierConfigBoolean(String callingPkg, String name, boolean value)
+ public boolean getCarrierConfigBoolean(long subId, String name, boolean defaultValue)
throws RemoteException {
- mContext.enforceCallingPermission(Manifest.permission.SEND_SMS, "Set MMS config");
- if (getAppOpsManager().noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(),
- callingPkg) != AppOpsManager.MODE_ALLOWED) {
- return;
- }
- getServiceGuarded().setCarrierConfigBoolean(callingPkg, name, value);
+ return getServiceGuarded().getCarrierConfigBoolean(subId, name, defaultValue);
}
@Override
- public void setCarrierConfigInt(String callingPkg, String name, int value)
+ public int getCarrierConfigInt(long subId, String name, int defaultValue)
throws RemoteException {
- mContext.enforceCallingPermission(Manifest.permission.SEND_SMS, "Set MMS config");
- if (getAppOpsManager().noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(),
- callingPkg) != AppOpsManager.MODE_ALLOWED) {
- return;
- }
- getServiceGuarded().setCarrierConfigInt(callingPkg, name, value);
+ return getServiceGuarded().getCarrierConfigInt(subId, name, defaultValue);
}
@Override
- public void setCarrierConfigString(String callingPkg, String name, String value)
+ public String getCarrierConfigString(long subId, String name, String defaultValue)
throws RemoteException {
- mContext.enforceCallingPermission(Manifest.permission.SEND_SMS, "Set MMS config");
- if (getAppOpsManager().noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(),
- callingPkg) != AppOpsManager.MODE_ALLOWED) {
- return;
- }
- getServiceGuarded().setCarrierConfigString(callingPkg, name, value);
+ return getServiceGuarded().getCarrierConfigString(subId, name, defaultValue);
}
@Override
@@ -370,14 +341,15 @@ public class MmsServiceBroker extends SystemService {
@Override
public void sendStoredMessage(long subId, String callingPkg, Uri messageUri,
- PendingIntent sentIntent) throws RemoteException {
+ ContentValues configOverrides, PendingIntent sentIntent) throws RemoteException {
mContext.enforceCallingPermission(Manifest.permission.SEND_SMS,
"Send stored MMS message");
if (getAppOpsManager().noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(),
callingPkg) != AppOpsManager.MODE_ALLOWED) {
return;
}
- getServiceGuarded().sendStoredMessage(subId, callingPkg, messageUri, sentIntent);
+ getServiceGuarded().sendStoredMessage(subId, callingPkg, messageUri, configOverrides,
+ sentIntent);
}
@Override
diff --git a/telephony/java/com/android/internal/telephony/IMms.aidl b/telephony/java/com/android/internal/telephony/IMms.aidl
index 30ef7250184c..cbcef2556cba 100644
--- a/telephony/java/com/android/internal/telephony/IMms.aidl
+++ b/telephony/java/com/android/internal/telephony/IMms.aidl
@@ -31,11 +31,14 @@ interface IMms {
* @param callingPkg the package name of the calling app
* @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 configOverrides the carrier-specific messaging configuration values to override for
+ * sending the message. See {@link android.telephony.MessagingConfigurationManager} for the
+ * value names and types.
* @param sentIntent if not NULL this <code>PendingIntent</code> is
* broadcast when the message is successfully sent, or failed
*/
void sendMessage(long subId, String callingPkg, in byte[] pdu, String locationUrl,
- in PendingIntent sentIntent);
+ in ContentValues configOverrides, in PendingIntent sentIntent);
/**
* Download an MMS message using known location and transaction id
@@ -44,11 +47,14 @@ interface IMms {
* @param callingPkg the package name of the calling app
* @param locationUrl the location URL of the MMS message to be downloaded, usually obtained
* from the MMS WAP push notification
+ * @param configOverrides the carrier-specific messaging configuration values to override for
+ * downloading the message. See {@link android.telephony.MessagingConfigurationManager} for the
+ * value names and types.
* @param downloadedIntent if not NULL this <code>PendingIntent</code> is
* broadcast when the message is downloaded, or the download is failed
*/
void downloadMessage(long subId, String callingPkg, String locationUrl,
- in PendingIntent downloadedIntent);
+ in ContentValues configOverrides, in PendingIntent downloadedIntent);
/**
* Update the status of a pending (send-by-IP) MMS message handled by the carrier app.
@@ -75,53 +81,30 @@ interface IMms {
* Get carrier-dependent configuration value as boolean. For example, if multipart SMS
* is supported.
*
+ * @param subId the SIM id
* @param name the configuration name
* @param defaultValue the default value if fail to find the name
*/
- boolean getCarrierConfigBoolean(String name, boolean defaultValue);
+ boolean getCarrierConfigBoolean(long subId, String name, boolean defaultValue);
/**
* Get carrier-dependent configuration value as int. For example, the MMS message size limit.
*
+ * @param subId the SIM id
* @param name the configuration name
* @param defaultValue the default value if fail to find the name
*/
- int getCarrierConfigInt(String name, int defaultValue);
+ int getCarrierConfigInt(long subId, String name, int defaultValue);
/**
* Get carrier-dependent configuration value as String. For example, extra HTTP headers for
* MMS request.
*
+ * @param subId the SIM id
* @param name the configuration name
* @param defaultValue the default value if fail to find the name
*/
- String getCarrierConfigString(String name, String defaultValue);
-
- /**
- * Set carrier-dependent configuration value as boolean. For example, if multipart SMS
- * is supported.
- *
- * @param name the configuration name
- * @param value the configuration value
- */
- void setCarrierConfigBoolean(String callingPkg, String name, boolean value);
-
- /**
- * Set carrier-dependent configuration value as int. For example, the MMS message size limit.
- *
- * @param name the configuration name
- * @param value the configuration value
- */
- void setCarrierConfigInt(String callingPkg, String name, int value);
-
- /**
- * Set carrier-dependent configuration value as String. For example, extra HTTP headers for
- * MMS request.
- *
- * @param name the configuration name
- * @param value the configuration value
- */
- void setCarrierConfigString(String callingPkg, String name, String value);
+ String getCarrierConfigString(long subId, String name, String defaultValue);
/**
* Import a text message into system's SMS store
@@ -220,11 +203,14 @@ interface IMms {
* @param subId the SIM id
* @param callingPkg the package name of the calling app
* @param messageUri the URI of the stored message
+ * @param configOverrides the carrier-specific messaging configuration values to override for
+ * sending the message. See {@link android.telephony.MessagingConfigurationManager} for the
+ * value names and types.
* @param sentIntent if not NULL this <code>PendingIntent</code> is
* broadcast when the message is successfully sent, or failed
*/
void sendStoredMessage(long subId, String callingPkg, in Uri messageUri,
- in PendingIntent sentIntent);
+ in ContentValues configOverrides, in PendingIntent sentIntent);
/**
* Turns on/off the flag to automatically write sent/received SMS/MMS messages into system