From e25a4dfb6a047bd2c937f033482a551842a7870d Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Thu, 16 Feb 2017 15:31:59 -0800 Subject: [PATCH] Added telephony manager set sim power state API The new API can be used to power up/down the SIM. This is equivalent to inserting and removing the card. Test: Telephony sanity tests bug: 32224755 Change-Id: Ib82ab1eff613946e7c31c9b2131183a40d09af80 --- .../android/telephony/TelephonyManager.java | 38 +++++++++++++++++++ .../internal/telephony/ITelephony.aidl | 8 ++++ 2 files changed, 46 insertions(+) diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index faeeded50d171..ddf5230e0073d 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -5332,6 +5332,44 @@ public class TelephonyManager { TelephonyProperties.PROPERTY_SIM_STATE, state); } + /** + * Set SIM card power state. Request is equivalent to inserting or removing the card. + * + * @param powerUp True if powering up the SIM, otherwise powering down + * + *

Requires Permission: + * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} + * + * @hide + **/ + public void setSimPowerState(boolean powerUp) { + setSimPowerStateForSlot(getDefaultSim(), powerUp); + } + + /** + * Set SIM card power state. Request is equivalent to inserting or removing the card. + * + * @param slotId SIM slot id + * @param powerUp True if powering up the SIM, otherwise powering down + * + *

Requires Permission: + * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} + * + * @hide + **/ + public void setSimPowerStateForSlot(int slotId, boolean powerUp) { + try { + ITelephony telephony = getITelephony(); + if (telephony != null) { + telephony.setSimPowerStateForSlot(slotId, powerUp); + } + } catch (RemoteException e) { + Log.e(TAG, "Error calling ITelephony#setSimPowerStateForSlot", e); + } catch (SecurityException e) { + Log.e(TAG, "Permission error calling ITelephony#setSimPowerStateForSlot", e); + } + } + /** * Set baseband version for the default phone. * diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index f89c82ba82890..42a80b77f9078 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -1227,4 +1227,12 @@ interface ITelephony { * @hide */ List getClientRequestStats(String callingPackage, int subid); + + /** + * Set SIM card power state. Request is equivalent to inserting or removing the card. + * @param slotId SIM slot id + * @param powerUp True if powering up the SIM, otherwise powering down + * @hide + * */ + void setSimPowerStateForSlot(int slotId, boolean powerUp); }