diff --git a/api/test-current.txt b/api/test-current.txt index f66fafe64bc4c..9f5fa0cb08634 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -779,6 +779,12 @@ package android.telephony { method public void setCdmaSystemAndNetworkId(int, int); } + public class TelephonyManager { + method public int getCarrierIdListVersion(); + method public void setCarrierTestOverride(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String); + field public static final int UNKNOWN_CARRIER_ID_LIST_VERSION = -1; // 0xffffffff + } + } package android.telephony.mbms { diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 5a1742ce91568..7cb5ce4bc80d9 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -27,6 +27,7 @@ import android.annotation.SuppressAutoDoc; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.SystemService; +import android.annotation.TestApi; import android.annotation.WorkerThread; import android.app.ActivityThread; import android.app.PendingIntent; @@ -1066,6 +1067,13 @@ public class TelephonyManager { */ public static final int UNKNOWN_CARRIER_ID = -1; + /** + * An unknown carrier id list version. + * @hide + */ + @TestApi + public static final int UNKNOWN_CARRIER_ID_LIST_VERSION = -1; + /** * Broadcast Action: The subscription carrier identity has changed. * This intent could be sent on the following events: @@ -7835,4 +7843,49 @@ public class TelephonyManager { } } } + + /** + * A test API to override carrier information including mccmnc, imsi, iccid, gid1, gid2, + * plmn and spn. This would be handy for, eg, forcing a particular carrier id, carrier's config + * (also any country or carrier overlays) to be loaded when using a test SIM with a call box. + * + *
Requires Permission: + * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} + * + * @hide + */ + @TestApi + public void setCarrierTestOverride(String mccmnc, String imsi, String iccid, String gid1, + String gid2, String plmn, String spn) { + try { + ITelephony telephony = getITelephony(); + if (telephony != null) { + telephony.setCarrierTestOverride( + getSubId(), mccmnc, imsi, iccid, gid1, gid2, plmn, spn); + } + } catch (RemoteException ex) { + // This could happen if binder process crashes. + } + } + + /** + * A test API to return installed carrier id list version + * + *
Requires Permission: + * {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE READ_PRIVILEGED_PHONE_STATE} + * + * @hide + */ + @TestApi + public int getCarrierIdListVersion() { + try { + ITelephony telephony = getITelephony(); + if (telephony != null) { + return telephony.getCarrierIdListVersion(getSubId()); + } + } catch (RemoteException ex) { + // This could happen if binder process crashes. + } + return UNKNOWN_CARRIER_ID_LIST_VERSION; + } } diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 39289066626ed..687a6b738dba6 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -1480,4 +1480,17 @@ interface ITelephony { * screen is off) we want to turn on those indications even when the screen is off. */ void setRadioIndicationUpdateMode(int subId, int filters, int mode); + + /** + * A test API to override carrier information including mccmnc, imsi, iccid, gid1, gid2, + * plmn and spn. This would be handy for, eg, forcing a particular carrier id, carrier's config + * (also any country or carrier overlays) to be loaded when using a test SIM with a call box. + */ + void setCarrierTestOverride(int subId, String mccmnc, String imsi, String iccid, String gid1, + String gid2, String plmn, String spn); + + /** + * A test API to return installed carrier id list version. + */ + int getCarrierIdListVersion(int subId); }