Invoke shutdownMobileRadios Telephony APIs from ShutdownThread

shutdownMobileRadios API shuts down multiple Radios on MSIM devices and
also gracefully shuts down Radios and SIM cards on single SIM and
MSIM devices. Use this API instead of the old setRadio APIs.

Add RIL_REQUEST_SHUTDOWN to RILConstants. Message is sent to notify
RIL that the device is shutting down.

Bug: 9773278
Change-Id: I6afa9e810cefc7855f7ae42e51f39cc51fa2aa6e
This commit is contained in:
Naveen Kalla
2014-08-02 01:03:42 -07:00
committed by Wink Saville
parent 2df7d1ef51
commit bd7723637b
3 changed files with 20 additions and 6 deletions

View File

@@ -430,10 +430,10 @@ public final class ShutdownThread extends Thread {
}
try {
radioOff = phone == null || !phone.isRadioOn();
radioOff = phone == null || !phone.needMobileRadioShutdown();
if (!radioOff) {
Log.w(TAG, "Turning off radio...");
phone.setRadio(false);
Log.w(TAG, "Turning off cellular radios...");
phone.shutdownMobileRadios();
}
} catch (RemoteException ex) {
Log.e(TAG, "RemoteException during radio shutdown", ex);
@@ -456,7 +456,7 @@ public final class ShutdownThread extends Thread {
}
if (!radioOff) {
try {
radioOff = !phone.isRadioOn();
radioOff = !phone.needMobileRadioShutdown();
} catch (RemoteException ex) {
Log.e(TAG, "RemoteException during radio shutdown", ex);
radioOff = true;
@@ -472,7 +472,7 @@ public final class ShutdownThread extends Thread {
Log.e(TAG, "RemoteException during NFC shutdown", ex);
nfcOff = true;
}
if (radioOff) {
if (nfcOff) {
Log.i(TAG, "NFC turned off.");
}
}

View File

@@ -793,5 +793,16 @@ interface ITelephony {
* positive value success, data length of response
*/
int invokeOemRilRequestRaw(in byte[] oemReq, out byte[] oemResp);
}
/**
* Check if any mobile Radios need to be shutdown.
*
* @return true is any mobile radio needs to be shutdown
*/
boolean needMobileRadioShutdown();
/**
* Shutdown Mobile Radios
*/
void shutdownMobileRadios();
}

View File

@@ -287,7 +287,10 @@ cat include/telephony/ril.h | \
int RIL_REQUEST_ALLOW_DATA = 123;
int RIL_REQUEST_GET_HARDWARE_CONFIG = 124;
int RIL_REQUEST_SIM_AUTHENTICATION = 125;
int RIL_REQUEST_GET_DC_RT_INFO = 126;
int RIL_REQUEST_SET_DC_RT_INFO_RATE = 127;
int RIL_REQUEST_SET_DATA_PROFILE = 128;
int RIL_REQUEST_SHUTDOWN = 129;
int RIL_UNSOL_RESPONSE_BASE = 1000;
int RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED = 1000;