Merge "Add TelephonyManager APIs to take physical slotIndex - getSimCardState - getSimApplicationState" am: 4ed6876df1

am: 3e837c4822

Change-Id: Iee1a237d19808797673f917f796892c3be3c770d
This commit is contained in:
Patrick Huang
2019-09-09 11:51:01 -07:00
committed by android-build-merger
2 changed files with 86 additions and 8 deletions

View File

@@ -8129,7 +8129,9 @@ package android.telephony {
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public long getPreferredNetworkTypeBitmask(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public long getPreferredNetworkTypeBitmask();
method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public int getRadioPowerState(); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public int getRadioPowerState();
method public int getSimApplicationState(); method public int getSimApplicationState();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getSimApplicationState(int);
method public int getSimCardState(); method public int getSimCardState();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getSimCardState(int);
method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.Locale getSimLocale(); method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.Locale getSimLocale();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public long getSupportedRadioAccessFamily(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public long getSupportedRadioAccessFamily();
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public java.util.List<android.telephony.TelephonyHistogram> getTelephonyHistograms(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public java.util.List<android.telephony.TelephonyHistogram> getTelephonyHistograms();

View File

@@ -3083,18 +3083,61 @@ public class TelephonyManager {
*/ */
@SystemApi @SystemApi
public int getSimCardState() { public int getSimCardState() {
int simCardState = getSimState(); int simState = getSimState();
switch (simCardState) { return getSimCardStateFromSimState(simState);
}
/**
* Returns a constant indicating the state of the device SIM card in a physical slot.
*
* @param physicalSlotIndex physical slot index
*
* @see #SIM_STATE_UNKNOWN
* @see #SIM_STATE_ABSENT
* @see #SIM_STATE_CARD_IO_ERROR
* @see #SIM_STATE_CARD_RESTRICTED
* @see #SIM_STATE_PRESENT
*
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
public int getSimCardState(int physicalSlotIndex) {
int simState = getSimState(getLogicalSlotIndex(physicalSlotIndex));
return getSimCardStateFromSimState(simState);
}
/**
* Converts SIM state to SIM card state.
* @param simState
* @return SIM card state
*/
private int getSimCardStateFromSimState(int simState) {
switch (simState) {
case SIM_STATE_UNKNOWN: case SIM_STATE_UNKNOWN:
case SIM_STATE_ABSENT: case SIM_STATE_ABSENT:
case SIM_STATE_CARD_IO_ERROR: case SIM_STATE_CARD_IO_ERROR:
case SIM_STATE_CARD_RESTRICTED: case SIM_STATE_CARD_RESTRICTED:
return simCardState; return simState;
default: default:
return SIM_STATE_PRESENT; return SIM_STATE_PRESENT;
} }
} }
/**
* Converts a physical slot index to logical slot index.
* @param physicalSlotIndex physical slot index
* @return logical slot index
*/
private int getLogicalSlotIndex(int physicalSlotIndex) {
UiccSlotInfo[] slotInfos = getUiccSlotsInfo();
if (slotInfos != null && physicalSlotIndex >= 0 && physicalSlotIndex < slotInfos.length) {
return slotInfos[physicalSlotIndex].getLogicalSlotIdx();
}
return SubscriptionManager.INVALID_SIM_SLOT_INDEX;
}
/** /**
* Returns a constant indicating the state of the card applications on the default SIM card. * Returns a constant indicating the state of the card applications on the default SIM card.
* *
@@ -3110,8 +3153,41 @@ public class TelephonyManager {
*/ */
@SystemApi @SystemApi
public int getSimApplicationState() { public int getSimApplicationState() {
int simApplicationState = getSimStateIncludingLoaded(); int simState = getSimStateIncludingLoaded();
switch (simApplicationState) { return getSimApplicationStateFromSimState(simState);
}
/**
* Returns a constant indicating the state of the card applications on the device SIM card in
* a physical slot.
*
* @param physicalSlotIndex physical slot index
*
* @see #SIM_STATE_UNKNOWN
* @see #SIM_STATE_PIN_REQUIRED
* @see #SIM_STATE_PUK_REQUIRED
* @see #SIM_STATE_NETWORK_LOCKED
* @see #SIM_STATE_NOT_READY
* @see #SIM_STATE_PERM_DISABLED
* @see #SIM_STATE_LOADED
*
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
public int getSimApplicationState(int physicalSlotIndex) {
int simState =
SubscriptionManager.getSimStateForSlotIndex(getLogicalSlotIndex(physicalSlotIndex));
return getSimApplicationStateFromSimState(simState);
}
/**
* Converts SIM state to SIM application state.
* @param simState
* @return SIM application state
*/
private int getSimApplicationStateFromSimState(int simState) {
switch (simState) {
case SIM_STATE_UNKNOWN: case SIM_STATE_UNKNOWN:
case SIM_STATE_ABSENT: case SIM_STATE_ABSENT:
case SIM_STATE_CARD_IO_ERROR: case SIM_STATE_CARD_IO_ERROR:
@@ -3122,14 +3198,14 @@ public class TelephonyManager {
// NOT_READY to either LOCKED or LOADED. // NOT_READY to either LOCKED or LOADED.
return SIM_STATE_NOT_READY; return SIM_STATE_NOT_READY;
default: default:
return simApplicationState; return simState;
} }
} }
/** /**
* Returns a constant indicating the state of the device SIM card in a slot. * Returns a constant indicating the state of the device SIM card in a logical slot.
* *
* @param slotIndex * @param slotIndex logical slot index
* *
* @see #SIM_STATE_UNKNOWN * @see #SIM_STATE_UNKNOWN
* @see #SIM_STATE_ABSENT * @see #SIM_STATE_ABSENT