summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--telephony/java/android/telephony/SubscriptionManager.java41
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java38
-rw-r--r--telephony/java/com/android/internal/telephony/ISub.aidl5
-rw-r--r--telephony/java/com/android/internal/telephony/ITelephony.aidl7
4 files changed, 45 insertions, 46 deletions
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index 0cfd96e46c4b..6a68494d8587 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -2586,18 +2586,41 @@ public class SubscriptionManager {
}
/**
- * Set a field in the subscription database. Note not all fields are supported.
+ * Returns a constant indicating the state of sim for the slot index.
*
- * @param subscriptionId Subscription Id of Subscription.
- * @param columnName Column name in the database. Note not all fields are supported.
- * @param value Value to store in the database.
+ * @param slotIndex
*
- * @throws IllegalArgumentException if {@code subscriptionId} is invalid, or the field is not
- * exposed.
- * @throws SecurityException if callers do not hold the required permission.
- *
- * @see android.provider.Telephony.SimInfo for all the columns.
+ * {@See TelephonyManager#SIM_STATE_UNKNOWN}
+ * {@See TelephonyManager#SIM_STATE_ABSENT}
+ * {@See TelephonyManager#SIM_STATE_PIN_REQUIRED}
+ * {@See TelephonyManager#SIM_STATE_PUK_REQUIRED}
+ * {@See TelephonyManager#SIM_STATE_NETWORK_LOCKED}
+ * {@See TelephonyManager#SIM_STATE_READY}
+ * {@See TelephonyManager#SIM_STATE_NOT_READY}
+ * {@See TelephonyManager#SIM_STATE_PERM_DISABLED}
+ * {@See TelephonyManager#SIM_STATE_CARD_IO_ERROR}
*
+ * {@hide}
+ */
+ public static int getSimStateForSlotIndex(int slotIndex) {
+ int simState = TelephonyManager.SIM_STATE_UNKNOWN;
+
+ try {
+ ISub iSub = TelephonyManager.getSubscriptionService();
+ if (iSub != null) {
+ simState = iSub.getSimStateForSlotIndex(slotIndex);
+ }
+ } catch (RemoteException ex) {
+ }
+
+ return simState;
+ }
+
+ /**
+ * Store properties associated with SubscriptionInfo in database
+ * @param subId Subscription Id of Subscription
+ * @param propKey Column name in database associated with SubscriptionInfo
+ * @param propValue Value to store in DB for particular subId & column name
* @hide
*/
@RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index d23b75bd8c45..d2bb27cfb16b 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -3504,7 +3504,7 @@ public class TelephonyManager {
"state as absent");
return SIM_STATE_ABSENT;
}
- return getSimStateForSlotIndex(slotIndex);
+ return SubscriptionManager.getSimStateForSlotIndex(slotIndex);
}
/**
@@ -3651,7 +3651,9 @@ public class TelephonyManager {
@Deprecated
public @SimState int getSimApplicationState(int physicalSlotIndex) {
int activePort = getFirstActivePortIndex(physicalSlotIndex);
- int simState = getSimStateForSlotIndex(getLogicalSlotIndex(physicalSlotIndex, activePort));
+ int simState =
+ SubscriptionManager.getSimStateForSlotIndex(getLogicalSlotIndex(physicalSlotIndex,
+ activePort));
return getSimApplicationStateFromSimState(simState);
}
@@ -3677,7 +3679,9 @@ public class TelephonyManager {
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
@RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION)
public @SimState int getSimApplicationState(int physicalSlotIndex, int portIndex) {
- int simState = getSimStateForSlotIndex(getLogicalSlotIndex(physicalSlotIndex, portIndex));
+ int simState =
+ SubscriptionManager.getSimStateForSlotIndex(getLogicalSlotIndex(physicalSlotIndex,
+ portIndex));
return getSimApplicationStateFromSimState(simState);
}
@@ -3746,7 +3750,7 @@ public class TelephonyManager {
*/
@RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION)
public @SimState int getSimState(int slotIndex) {
- int simState = getSimStateForSlotIndex(slotIndex);
+ int simState = SubscriptionManager.getSimStateForSlotIndex(slotIndex);
if (simState == SIM_STATE_LOADED) {
simState = SIM_STATE_READY;
}
@@ -17001,30 +17005,4 @@ public class TelephonyManager {
}
return false;
}
-
- /**
- * Returns a constant indicating the state of sim for the slot index.
- *
- * @param slotIndex Logical SIM slot index.
- *
- * @see TelephonyManager.SimState
- *
- * @hide
- */
- @SimState
- public static int getSimStateForSlotIndex(int slotIndex) {
- try {
- ITelephony telephony = ITelephony.Stub.asInterface(
- TelephonyFrameworkInitializer
- .getTelephonyServiceManager()
- .getTelephonyServiceRegisterer()
- .get());
- if (telephony != null) {
- return telephony.getSimStateForSlotIndex(slotIndex);
- }
- } catch (RemoteException e) {
- Log.e(TAG, "Error in getSimStateForSlotIndex: " + e);
- }
- return TelephonyManager.SIM_STATE_UNKNOWN;
- }
}
diff --git a/telephony/java/com/android/internal/telephony/ISub.aidl b/telephony/java/com/android/internal/telephony/ISub.aidl
index c5f6902062ff..2cf5e67ad287 100644
--- a/telephony/java/com/android/internal/telephony/ISub.aidl
+++ b/telephony/java/com/android/internal/telephony/ISub.aidl
@@ -272,6 +272,11 @@ interface ISub {
boolean isSubscriptionEnabled(int subId);
int getEnabledSubscriptionId(int slotIndex);
+ /**
+ * Get the SIM state for the slot index
+ * @return SIM state as the ordinal of IccCardConstants.State
+ */
+ int getSimStateForSlotIndex(int slotIndex);
boolean isActiveSubId(int subId, String callingPackage, String callingFeatureId);
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index ecafe702ea4e..da1ffcdea812 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -2564,11 +2564,4 @@ interface ITelephony {
* @hide
*/
boolean isRemovableEsimDefaultEuicc(String callingPackage);
-
- /**
- * Get the SIM state for the logical SIM slot index.
- *
- * @param slotIndex Logical SIM slot index.
- */
- int getSimStateForSlotIndex(int slotIndex);
}