diff options
| -rw-r--r-- | api/current.txt | 1 | ||||
| -rw-r--r-- | api/system-current.txt | 1 | ||||
| -rw-r--r-- | api/test-current.txt | 1 | ||||
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 39 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/ITelephony.aidl | 13 |
5 files changed, 54 insertions, 1 deletions
diff --git a/api/current.txt b/api/current.txt index bd954210b90e..6359d8d094ed 100644 --- a/api/current.txt +++ b/api/current.txt @@ -39523,6 +39523,7 @@ package android.telephony { method public java.lang.String getDeviceId(); method public java.lang.String getDeviceId(int); method public java.lang.String getDeviceSoftwareVersion(); + method public java.lang.String[] getForbiddenPlmns(); method public java.lang.String getGroupIdLevel1(); method public java.lang.String getIccAuthentication(int, int, java.lang.String); method public java.lang.String getLine1Number(); diff --git a/api/system-current.txt b/api/system-current.txt index 363fc54ba7fc..8c14bac2a5e0 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -42813,6 +42813,7 @@ package android.telephony { method public java.lang.String getDeviceId(); method public java.lang.String getDeviceId(int); method public java.lang.String getDeviceSoftwareVersion(); + method public java.lang.String[] getForbiddenPlmns(); method public java.lang.String getGroupIdLevel1(); method public java.lang.String getIccAuthentication(int, int, java.lang.String); method public java.lang.String getImei(); diff --git a/api/test-current.txt b/api/test-current.txt index 8cf1dbc9d89b..06f8b5aa41da 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -39707,6 +39707,7 @@ package android.telephony { method public java.lang.String getDeviceId(); method public java.lang.String getDeviceId(int); method public java.lang.String getDeviceSoftwareVersion(); + method public java.lang.String[] getForbiddenPlmns(); method public java.lang.String getGroupIdLevel1(); method public java.lang.String getIccAuthentication(int, int, java.lang.String); method public java.lang.String getLine1Number(); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 81e87b3e8713..6d465f713215 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -4300,6 +4300,45 @@ public class TelephonyManager { } /** + * Returns an array of Forbidden PLMNs from the USIM App + * Returns null if the query fails. + * + * + * <p>Requires that the caller has READ_PRIVILEGED_PHONE_STATE + * + * @return an array of forbidden PLMNs or null if not available + */ + public String[] getForbiddenPlmns() { + return getForbiddenPlmns(getSubId(), APPTYPE_USIM); + } + + /** + * Returns an array of Forbidden PLMNs from the specified SIM App + * Returns null if the query fails. + * + * + * <p>Requires that the calling app has READ_PRIVILEGED_PHONE_STATE + * + * @param subId subscription ID used for authentication + * @param appType the icc application type, like {@link #APPTYPE_USIM} + * @return fplmns an array of forbidden PLMNs + * @hide + */ + public String[] getForbiddenPlmns(int subId, int appType) { + try { + ITelephony telephony = getITelephony(); + if (telephony == null) + return null; + return telephony.getForbiddenPlmns(subId, appType); + } catch (RemoteException ex) { + return null; + } catch (NullPointerException ex) { + // This could happen before phone starts + return null; + } + } + + /** * Get P-CSCF address from PCO after data connection is established or modified. * @param apnType the apnType, "ims" for IMS APN, "emergency" for EMERGENCY APN * @return array of P-CSCF address diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 88daf64fb4ad..e3816b6d1a40 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -1278,7 +1278,6 @@ interface ITelephony { */ void setPolicyDataEnabled(boolean enabled, int subId); - /** * Get Client request stats which will contain statistical information * on each request made by client. @@ -1295,4 +1294,16 @@ interface ITelephony { * @hide * */ void setSimPowerStateForSlot(int slotId, boolean powerUp); + + /** + * Returns a list of Forbidden PLMNs from the specified SIM App + * Returns null if the query fails. + * + * + * <p>Requires that the calling app has READ_PRIVILEGED_PHONE_STATE + * + * @param subId subscription ID used for authentication + * @param appType the icc application type, like {@link #APPTYPE_USIM} + */ + String[] getForbiddenPlmns(int subId, int appType); } |