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