Merge "MMS APIs rely on resolveSubscriptionForOperation()"
This commit is contained in:
@@ -2514,13 +2514,12 @@ public final class SmsManager {
|
||||
/**
|
||||
* Send an MMS message
|
||||
*
|
||||
* <p class="note"><strong>Note:</strong> This method will never trigger an SMS disambiguation
|
||||
* dialog. If this method is called on a device that has multiple active subscriptions, this
|
||||
* {@link SmsManager} instance has been created with {@link #getDefault()}, and no user-defined
|
||||
* default subscription is defined, the subscription ID associated with this message will be
|
||||
* INVALID, which will result in the operation being completed on the subscription associated
|
||||
* with logical slot 0. Use {@link #getSmsManagerForSubscriptionId(int)} to ensure the
|
||||
* operation is performed on the correct subscription.
|
||||
* <p class="note"><strong>Note:</strong> If {@link #getDefault()} is used to instantiate this
|
||||
* manager on a multi-SIM device, this operation may fail sending the MMS message because no
|
||||
* suitable default subscription could be found. In this case, if {@code sentIntent} is
|
||||
* non-null, then the {@link PendingIntent} will be sent with an error code
|
||||
* {@code RESULT_NO_DEFAULT_SMS_APP}. See {@link #getDefault()} for more information on the
|
||||
* conditions where this operation may fail.
|
||||
* </p>
|
||||
*
|
||||
* @param context application context
|
||||
@@ -2539,21 +2538,30 @@ public final class SmsManager {
|
||||
}
|
||||
MmsManager m = (MmsManager) context.getSystemService(Context.MMS_SERVICE);
|
||||
if (m != null) {
|
||||
m.sendMultimediaMessage(getSubscriptionId(), contentUri, locationUrl, configOverrides,
|
||||
sentIntent, 0L /* messageId */);
|
||||
resolveSubscriptionForOperation(new SubscriptionResolverResult() {
|
||||
@Override
|
||||
public void onSuccess(int subId) {
|
||||
m.sendMultimediaMessage(subId, contentUri, locationUrl, configOverrides,
|
||||
sentIntent, 0L /* messageId */);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure() {
|
||||
notifySmsError(sentIntent, RESULT_NO_DEFAULT_SMS_APP);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Download an MMS message from carrier by a given location URL
|
||||
*
|
||||
* <p class="note"><strong>Note:</strong> This method will never trigger an SMS disambiguation
|
||||
* dialog. If this method is called on a device that has multiple active subscriptions, this
|
||||
* {@link SmsManager} instance has been created with {@link #getDefault()}, and no user-defined
|
||||
* default subscription is defined, the subscription ID associated with this message will be
|
||||
* INVALID, which will result in the operation being completed on the subscription associated
|
||||
* with logical slot 0. Use {@link #getSmsManagerForSubscriptionId(int)} to ensure the
|
||||
* operation is performed on the correct subscription.
|
||||
* <p class="note"><strong>Note:</strong> If {@link #getDefault()} is used to instantiate this
|
||||
* manager on a multi-SIM device, this operation may fail downloading the MMS message because no
|
||||
* suitable default subscription could be found. In this case, if {@code downloadedIntent} is
|
||||
* non-null, then the {@link PendingIntent} will be sent with an error code
|
||||
* {@code RESULT_NO_DEFAULT_SMS_APP}. See {@link #getDefault()} for more information on the
|
||||
* conditions where this operation may fail.
|
||||
* </p>
|
||||
*
|
||||
* @param context application context
|
||||
@@ -2576,8 +2584,18 @@ public final class SmsManager {
|
||||
}
|
||||
MmsManager m = (MmsManager) context.getSystemService(Context.MMS_SERVICE);
|
||||
if (m != null) {
|
||||
m.downloadMultimediaMessage(getSubscriptionId(), locationUrl, contentUri,
|
||||
configOverrides, downloadedIntent, 0L /* messageId */);
|
||||
resolveSubscriptionForOperation(new SubscriptionResolverResult() {
|
||||
@Override
|
||||
public void onSuccess(int subId) {
|
||||
m.downloadMultimediaMessage(subId, locationUrl, contentUri, configOverrides,
|
||||
downloadedIntent, 0L /* messageId */);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure() {
|
||||
notifySmsError(downloadedIntent, RESULT_NO_DEFAULT_SMS_APP);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user