Add APIs that can be invoked to shutdown radio and SIM cards gracefully
Add APIs to check if Radios are available and trigger shutdown on all available
radios.
Bug: 9773278
Change-Id: I6afa9e810cefc7855f7ae42e51f39cc51fa2aa6e
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 6350e78..c608b1d 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -1090,6 +1090,34 @@
return true;
}
+ public boolean needMobileRadioShutdown() {
+ /*
+ * If any of the Radios are available, it will need to be
+ * shutdown. So return true if any Radio is available.
+ */
+ for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+ Phone phone = PhoneFactory.getPhone(i);
+ if (phone != null && phone.isRadioAvailable()) return true;
+ }
+ logv(TelephonyManager.getDefault().getPhoneCount() + " Phones are shutdown.");
+ return false;
+ }
+
+ public void shutdownMobileRadios() {
+ for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+ logv("Shutting down Phone " + i);
+ shutdownRadioUsingPhoneId(i);
+ }
+ }
+
+ private void shutdownRadioUsingPhoneId(int phoneId) {
+ enforceModifyPermission();
+ Phone phone = PhoneFactory.getPhone(phoneId);
+ if (phone != null && phone.isRadioAvailable()) {
+ phone.shutdownRadio();
+ }
+ }
+
public boolean setRadioPower(boolean turnOn) {
return setRadioPowerUsingSubId(getDefaultSubscription(), turnOn);
}
@@ -1376,6 +1404,10 @@
Log.d(LOG_TAG, "[PhoneIntfMgr] " + msg);
}
+ private static void logv(String msg) {
+ Log.v(LOG_TAG, "[PhoneIntfMgr] " + msg);
+ }
+
private static void loge(String msg) {
Log.e(LOG_TAG, "[PhoneIntfMgr] " + msg);
}