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 f3cb3fc16f36..f56de280cda3 100644 --- a/api/current.txt +++ b/api/current.txt @@ -38015,6 +38015,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 f65506a51ebe..6f12f3ffb4cf 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -41231,6 +41231,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 baf841e2477f..ea29a155cd1c 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -38098,6 +38098,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 54194597c00c..271e7d6d7f71 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -4190,6 +4190,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 42a80b77f907..d21efc6e091a 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -1218,7 +1218,6 @@ interface ITelephony { */ void setPolicyDataEnabled(boolean enabled, int subId); - /** * Get Client request stats which will contain statistical information * on each request made by client. @@ -1235,4 +1234,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); } |