diff options
| -rw-r--r-- | api/system-current.txt | 1 | ||||
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 25 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/ITelephony.aidl | 7 |
3 files changed, 33 insertions, 0 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 608c78515f1d..a8098fbb9592 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -8147,6 +8147,7 @@ package android.telephony { method @Nullable @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.telephony.IccOpenLogicalChannelResponse iccOpenLogicalChannelBySlot(int, @Nullable String, int); method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public String iccTransmitApduBasicChannelBySlot(int, int, int, int, int, int, @Nullable String); method @Nullable @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public String iccTransmitApduLogicalChannelBySlot(int, int, int, int, int, int, int, @Nullable String); + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isApplicationOnUicc(int); method public boolean isDataConnectivityPossible(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isEmergencyAssistanceEnabled(); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle(); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 00288d7d97bf..5dfdd7e57075 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -3202,6 +3202,31 @@ public class TelephonyManager { } } + + /** + * Returns true if the specified type of application (e.g. {@link #APPTYPE_CSIM} is present + * on the UICC card. + * + * Requires that the calling app has READ_PRIVILEGED_PHONE_STATE permission + * + * @param appType the uicc app type like {@link APPTYPE_CSIM} + * @return true if the specified type of application in UICC CARD or false if no uicc or error. + * @hide + */ + @SystemApi + @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) + public boolean isApplicationOnUicc(@UiccAppType int appType) { + try { + ITelephony service = getITelephony(); + if (service != null) { + return service.isApplicationOnUicc(getSubId(), appType); + } + } catch (RemoteException e) { + Log.e(TAG, "Error calling ITelephony#isApplicationOnUicc", e); + } + return false; + } + /** * Returns a constant indicating the state of the device SIM card in a logical slot. * diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index dcfd193185cf..3d065aa08604 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -2008,6 +2008,13 @@ interface ITelephony { */ int getRadioHalVersion(); + /** + * Returns true if the specified type of application (e.g. {@link #APPTYPE_CSIM} is present + * on the UICC card. + * @hide + */ + boolean isApplicationOnUicc(int subId, int appType); + boolean isModemEnabledForSlot(int slotIndex, String callingPackage); boolean isDataEnabledForApn(int apnType, int subId, String callingPackage); |