Add isApplicationOnUicc API
Returns true if the specified type of application
on the UICC card
Bug:127549503
Change-Id: Ie9214dbca497a370cb47a93c23ccbda89e0b45e9
Signed-off-by: Hyungjun Park <hjun78.park@samsung.com>
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 0469d7d..dca67fd 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -158,6 +158,7 @@
import com.android.internal.telephony.uicc.UiccController;
import com.android.internal.telephony.uicc.UiccProfile;
import com.android.internal.telephony.uicc.UiccSlot;
+import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppType;
import com.android.internal.telephony.util.VoicemailNotificationSettingsUtil;
import com.android.internal.util.HexDump;
import com.android.phone.settings.PickSmsSubscriptionActivity;
@@ -7004,6 +7005,33 @@
}
}
+ @Override
+ public boolean isApplicationOnUicc(int subId, int appType) {
+ enforceReadPrivilegedPermission("isApplicationOnUicc");
+ Phone phone = getPhone(subId);
+ if (phone == null) {
+ return false;
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ UiccCard uiccCard = phone.getUiccCard();
+ if (uiccCard == null) {
+ return false;
+ }
+ UiccProfile uiccProfile = uiccCard.getUiccProfile();
+ if (uiccProfile == null) {
+ return false;
+ }
+ if (TelephonyManager.APPTYPE_SIM <= appType
+ && appType <= TelephonyManager.APPTYPE_ISIM) {
+ return uiccProfile.isApplicationOnIcc(AppType.values()[appType]);
+ }
+ return false;
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
/**
* Get whether making changes to modem configurations will trigger reboot.
* Return value defaults to true.