Add System API to enable / disable a logical modem.

Bug: 122926141
Test: unittest
Change-Id: Ifeb3b135ba9ecba8982a911f369fa266468d2e45
This commit is contained in:
Malcolm Chen
2019-01-15 20:14:34 -08:00
parent 3a1d61d772
commit cf21ad751a
4 changed files with 36 additions and 0 deletions

View File

@@ -6827,6 +6827,7 @@ package android.telephony {
method public void dial(java.lang.String);
method public boolean disableDataConnectivity();
method public boolean enableDataConnectivity();
method public boolean enableModemForSlot(int, boolean);
method public void enableVideoCalling(boolean);
method public java.lang.String getAidForAppType(int);
method public java.util.List<android.service.carrier.CarrierIdentifier> getAllowedCarriers(int);

View File

@@ -9972,4 +9972,33 @@ public class TelephonyManager {
}
return ret;
}
/**
* Enable or disable a logical modem stack. When a logical modem is disabled, the corresponding
* SIM will still be visible to the user but its mapping modem will not have any radio activity.
* For example, we will disable a modem when user or system believes the corresponding SIM
* is temporarily not needed (e.g. out of coverage), and will enable it back on when needed.
*
* Requires that the calling app has permission
* {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}.
* @param slotIndex which corresponding modem will operate on.
* @param enable whether to enable or disable the modem stack.
* @return whether the operation is successful.
*
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
public boolean enableModemForSlot(int slotIndex, boolean enable) {
boolean ret = false;
try {
ITelephony telephony = getITelephony();
if (telephony != null) {
ret = telephony.enableModemForSlot(slotIndex, enable);
}
} catch (RemoteException ex) {
Log.e(TAG, "enableModem RemoteException", ex);
}
return ret;
}
}

View File

@@ -1787,4 +1787,9 @@ interface ITelephony {
* Get the full emergency number list for Test Mode.
*/
List<String> getEmergencyNumberListTestMode();
/**
* Enable or disable a logical modem stack associated with the slotIndex.
*/
boolean enableModemForSlot(int slotIndex, boolean enable);
}

View File

@@ -489,6 +489,7 @@ public interface RILConstants {
int RIL_REQUEST_STOP_NETWORK_SCAN = 143;
int RIL_REQUEST_START_KEEPALIVE = 144;
int RIL_REQUEST_STOP_KEEPALIVE = 145;
int RIL_REQUEST_ENABLE_MODEM = 146;
/* The following requests are not defined in RIL.h */
int RIL_REQUEST_HAL_NON_RIL_BASE = 200;