Add optional messageId methods for sending/receiving mms's
Bug: 148235962 Test: manually tested the new MMS apis using the Messages app Change-Id: I578a9875ba9b0d73c03a61c5878c396d76f8aa52
This commit is contained in:
@@ -46224,8 +46224,8 @@ package android.telephony {
|
||||
}
|
||||
|
||||
public class MmsManager {
|
||||
method public void downloadMultimediaMessage(int, @NonNull String, @NonNull android.net.Uri, @Nullable android.os.Bundle, @Nullable android.app.PendingIntent);
|
||||
method public void sendMultimediaMessage(int, @NonNull android.net.Uri, @Nullable String, @Nullable android.os.Bundle, @Nullable android.app.PendingIntent);
|
||||
method public void downloadMultimediaMessage(int, @NonNull String, @NonNull android.net.Uri, @Nullable android.os.Bundle, @Nullable android.app.PendingIntent, long);
|
||||
method public void sendMultimediaMessage(int, @NonNull android.net.Uri, @Nullable String, @Nullable android.os.Bundle, @Nullable android.app.PendingIntent, long);
|
||||
}
|
||||
|
||||
@Deprecated public class NeighboringCellInfo implements android.os.Parcelable {
|
||||
|
||||
@@ -55,10 +55,12 @@ public class MmsManager {
|
||||
* sending the message.
|
||||
* @param sentIntent if not NULL this <code>PendingIntent</code> is broadcast when the message
|
||||
* is successfully sent, or failed
|
||||
* @param messageId an id that uniquely identifies the message requested to be sent.
|
||||
* Used for logging and diagnostics purposes. The id may be 0.
|
||||
*/
|
||||
public void sendMultimediaMessage(int subId, @NonNull Uri contentUri,
|
||||
@Nullable String locationUrl, @Nullable Bundle configOverrides,
|
||||
@Nullable PendingIntent sentIntent) {
|
||||
@Nullable PendingIntent sentIntent, long messageId) {
|
||||
try {
|
||||
final IMms iMms = IMms.Stub.asInterface(ServiceManager.getService("imms"));
|
||||
if (iMms == null) {
|
||||
@@ -66,7 +68,7 @@ public class MmsManager {
|
||||
}
|
||||
|
||||
iMms.sendMessage(subId, ActivityThread.currentPackageName(), contentUri,
|
||||
locationUrl, configOverrides, sentIntent);
|
||||
locationUrl, configOverrides, sentIntent, messageId);
|
||||
} catch (RemoteException e) {
|
||||
// Ignore it
|
||||
}
|
||||
@@ -83,18 +85,22 @@ public class MmsManager {
|
||||
* downloading the message.
|
||||
* @param downloadedIntent if not NULL this <code>PendingIntent</code> is
|
||||
* broadcast when the message is downloaded, or the download is failed
|
||||
* @param messageId an id that uniquely identifies the message requested to be downloaded.
|
||||
* Used for logging and diagnostics purposes. The id may be 0.
|
||||
* downloaded.
|
||||
* @throws IllegalArgumentException if locationUrl or contentUri is empty
|
||||
*/
|
||||
public void downloadMultimediaMessage(int subId, @NonNull String locationUrl,
|
||||
@NonNull Uri contentUri, @Nullable Bundle configOverrides,
|
||||
@Nullable PendingIntent downloadedIntent) {
|
||||
@Nullable PendingIntent downloadedIntent, long messageId) {
|
||||
try {
|
||||
final IMms iMms = IMms.Stub.asInterface(ServiceManager.getService("imms"));
|
||||
if (iMms == null) {
|
||||
return;
|
||||
}
|
||||
iMms.downloadMessage(subId, ActivityThread.currentPackageName(),
|
||||
locationUrl, contentUri, configOverrides, downloadedIntent);
|
||||
locationUrl, contentUri, configOverrides, downloadedIntent,
|
||||
messageId);
|
||||
} catch (RemoteException e) {
|
||||
// Ignore it
|
||||
}
|
||||
|
||||
@@ -37,9 +37,11 @@ interface IMms {
|
||||
* sending the message. See {@link android.telephony.SmsManager} 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
|
||||
* @param messageId An id that uniquely identifies the message requested to be sent.
|
||||
*/
|
||||
void sendMessage(int subId, String callingPkg, in Uri contentUri,
|
||||
String locationUrl, in Bundle configOverrides, in PendingIntent sentIntent);
|
||||
String locationUrl, in Bundle configOverrides, in PendingIntent sentIntent,
|
||||
in long messageId);
|
||||
|
||||
/**
|
||||
* Download an MMS message using known location and transaction id
|
||||
@@ -54,10 +56,11 @@ interface IMms {
|
||||
* types.
|
||||
* @param downloadedIntent if not NULL this <code>PendingIntent</code> is
|
||||
* broadcast when the message is downloaded, or the download is failed
|
||||
*/
|
||||
* @param messageId An id that uniquely identifies the message requested to be downloaded.
|
||||
*/
|
||||
void downloadMessage(int subId, String callingPkg, String locationUrl,
|
||||
in Uri contentUri, in Bundle configOverrides,
|
||||
in PendingIntent downloadedIntent);
|
||||
in PendingIntent downloadedIntent, in long messageId);
|
||||
|
||||
/**
|
||||
* Import a text message into system's SMS store
|
||||
|
||||
@@ -128,13 +128,15 @@ public class MmsServiceBroker extends SystemService {
|
||||
|
||||
@Override
|
||||
public void sendMessage(int subId, String callingPkg, Uri contentUri, String locationUrl,
|
||||
Bundle configOverrides, PendingIntent sentIntent) throws RemoteException {
|
||||
Bundle configOverrides, PendingIntent sentIntent, long messageId)
|
||||
throws RemoteException {
|
||||
returnPendingIntentWithError(sentIntent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void downloadMessage(int subId, String callingPkg, String locationUrl,
|
||||
Uri contentUri, Bundle configOverrides, PendingIntent downloadedIntent)
|
||||
Uri contentUri, Bundle configOverrides, PendingIntent downloadedIntent,
|
||||
long messageId)
|
||||
throws RemoteException {
|
||||
returnPendingIntentWithError(downloadedIntent);
|
||||
}
|
||||
@@ -329,7 +331,8 @@ public class MmsServiceBroker extends SystemService {
|
||||
|
||||
@Override
|
||||
public void sendMessage(int subId, String callingPkg, Uri contentUri,
|
||||
String locationUrl, Bundle configOverrides, PendingIntent sentIntent)
|
||||
String locationUrl, Bundle configOverrides, PendingIntent sentIntent,
|
||||
long messageId)
|
||||
throws RemoteException {
|
||||
Slog.d(TAG, "sendMessage() by " + callingPkg);
|
||||
mContext.enforceCallingPermission(Manifest.permission.SEND_SMS, "Send MMS message");
|
||||
@@ -343,13 +346,13 @@ public class MmsServiceBroker extends SystemService {
|
||||
Intent.FLAG_GRANT_READ_URI_PERMISSION,
|
||||
subId);
|
||||
getServiceGuarded().sendMessage(subId, callingPkg, contentUri, locationUrl,
|
||||
configOverrides, sentIntent);
|
||||
configOverrides, sentIntent, messageId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void downloadMessage(int subId, String callingPkg, String locationUrl,
|
||||
Uri contentUri, Bundle configOverrides,
|
||||
PendingIntent downloadedIntent) throws RemoteException {
|
||||
PendingIntent downloadedIntent, long messageId) throws RemoteException {
|
||||
Slog.d(TAG, "downloadMessage() by " + callingPkg);
|
||||
mContext.enforceCallingPermission(Manifest.permission.RECEIVE_MMS,
|
||||
"Download MMS message");
|
||||
@@ -364,7 +367,7 @@ public class MmsServiceBroker extends SystemService {
|
||||
subId);
|
||||
|
||||
getServiceGuarded().downloadMessage(subId, callingPkg, locationUrl, contentUri,
|
||||
configOverrides, downloadedIntent);
|
||||
configOverrides, downloadedIntent, messageId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2529,7 +2529,7 @@ public final class SmsManager {
|
||||
MmsManager m = (MmsManager) context.getSystemService(Context.MMS_SERVICE);
|
||||
if (m != null) {
|
||||
m.sendMultimediaMessage(getSubscriptionId(), contentUri, locationUrl, configOverrides,
|
||||
sentIntent);
|
||||
sentIntent, 0L /* messageId */);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2567,7 +2567,7 @@ public final class SmsManager {
|
||||
MmsManager m = (MmsManager) context.getSystemService(Context.MMS_SERVICE);
|
||||
if (m != null) {
|
||||
m.downloadMultimediaMessage(getSubscriptionId(), locationUrl, contentUri,
|
||||
configOverrides, downloadedIntent);
|
||||
configOverrides, downloadedIntent, 0L /* messageId */);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user