Merge "cherry-picked "Add multiple esim support for SubscriptionManager""

This commit is contained in:
Pengquan Meng
2019-01-15 04:40:07 +00:00
committed by Gerrit Code Review
3 changed files with 39 additions and 4 deletions

View File

@@ -5558,6 +5558,7 @@ package android.telephony {
method public void requestEmbeddedSubscriptionInfoListRefresh();
method public void setDefaultDataSubId(int);
method public void setDefaultSmsSubId(int);
method public void requestEmbeddedSubscriptionInfoListRefresh(int);
field public static final android.net.Uri ADVANCED_CALLING_ENABLED_CONTENT_URI;
field public static final int PROFILE_CLASS_DEFAULT = -1; // 0xffffffff
field public static final int PROFILE_CLASS_OPERATIONAL = 2; // 0x2

View File

@@ -1270,7 +1270,8 @@ public class SubscriptionManager {
}
/**
* Request a refresh of the platform cache of profile information.
* Request a refresh of the platform cache of profile information for the eUICC which
* corresponds to the card ID returned by {@link TelephonyManager#getCardIdForDefaultEuicc()}.
*
* <p>Should be called by the EuiccService implementation whenever this information changes due
* to an operation done outside the scope of a request initiated by the platform to the
@@ -1278,17 +1279,50 @@ public class SubscriptionManager {
* were made through the EuiccService.
*
* <p>Requires the {@link android.Manifest.permission#WRITE_EMBEDDED_SUBSCRIPTIONS} permission.
*
* @see {@link TelephonyManager#getCardIdForDefaultEuicc()} for more information on the card ID.
*
* @hide
*/
@SystemApi
public void requestEmbeddedSubscriptionInfoListRefresh() {
int cardId = TelephonyManager.from(mContext).getCardIdForDefaultEuicc();
try {
ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub"));
if (iSub != null) {
iSub.requestEmbeddedSubscriptionInfoListRefresh();
iSub.requestEmbeddedSubscriptionInfoListRefresh(cardId);
}
} catch (RemoteException ex) {
// ignore it
logd("requestEmbeddedSubscriptionInfoListFresh for card = " + cardId + " failed.");
}
}
/**
* Request a refresh of the platform cache of profile information for the eUICC with the given
* {@code cardId}.
*
* <p>Should be called by the EuiccService implementation whenever this information changes due
* to an operation done outside the scope of a request initiated by the platform to the
* EuiccService. There is no need to refresh for downloads, deletes, or other operations that
* were made through the EuiccService.
*
* <p>Requires the {@link android.Manifest.permission#WRITE_EMBEDDED_SUBSCRIPTIONS} permission.
*
* @param cardId the card ID of the eUICC.
*
* @see {@link TelephonyManager#getCardIdForDefaultEuicc()} for more information on the card ID.
*
* @hide
*/
@SystemApi
public void requestEmbeddedSubscriptionInfoListRefresh(int cardId) {
try {
ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub"));
if (iSub != null) {
iSub.requestEmbeddedSubscriptionInfoListRefresh(cardId);
}
} catch (RemoteException ex) {
logd("requestEmbeddedSubscriptionInfoListFresh for card = " + cardId + " failed.");
}
}

View File

@@ -104,7 +104,7 @@ interface ISub {
/**
* @see android.telephony.SubscriptionManager#requestEmbeddedSubscriptionInfoListRefresh
*/
oneway void requestEmbeddedSubscriptionInfoListRefresh();
oneway void requestEmbeddedSubscriptionInfoListRefresh(int cardId);
/**
* Add a new SubscriptionInfo to subinfo database if needed