Merge "Ability to configure NR dual connectivity"
This commit is contained in:
@@ -11256,6 +11256,7 @@ package android.telephony {
|
||||
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle();
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isLteCdmaEvdoGsmWcdmaEnabled();
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isMobileDataPolicyEnabled(int);
|
||||
method public boolean isNrDualConnectivityEnabled();
|
||||
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook();
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isOpportunisticNetworkEnabled();
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isPotentialEmergencyNumber(@NonNull String);
|
||||
@@ -11288,6 +11289,7 @@ package android.telephony {
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataRoamingEnabled(boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMobileDataPolicyEnabledStatus(int, boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMultiSimCarrierRestriction(boolean);
|
||||
method public int setNrDualConnectivityState(int);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setOpportunisticNetworkState(boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setPreferredNetworkTypeBitmask(long);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadio(boolean);
|
||||
@@ -11327,6 +11329,11 @@ package android.telephony {
|
||||
field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
|
||||
field public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; // 0x0
|
||||
field public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; // 0xffffffff
|
||||
field public static final int ENABLE_NR_DUAL_CONNECTIVITY_INVALID_STATE = 4; // 0x4
|
||||
field public static final int ENABLE_NR_DUAL_CONNECTIVITY_NOT_SUPPORTED = 1; // 0x1
|
||||
field public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_ERROR = 3; // 0x3
|
||||
field public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_NOT_AVAILABLE = 2; // 0x2
|
||||
field public static final int ENABLE_NR_DUAL_CONNECTIVITY_SUCCESS = 0; // 0x0
|
||||
field public static final String EXTRA_ANOMALY_DESCRIPTION = "android.telephony.extra.ANOMALY_DESCRIPTION";
|
||||
field public static final String EXTRA_ANOMALY_ID = "android.telephony.extra.ANOMALY_ID";
|
||||
field public static final String EXTRA_PHONE_IN_ECM_STATE = "android.telephony.extra.PHONE_IN_ECM_STATE";
|
||||
@@ -11359,6 +11366,9 @@ package android.telephony {
|
||||
field public static final long NETWORK_TYPE_BITMASK_TD_SCDMA = 65536L; // 0x10000L
|
||||
field public static final long NETWORK_TYPE_BITMASK_UMTS = 4L; // 0x4L
|
||||
field public static final long NETWORK_TYPE_BITMASK_UNKNOWN = 0L; // 0x0L
|
||||
field public static final int NR_DUAL_CONNECTIVITY_DISABLE = 2; // 0x2
|
||||
field public static final int NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE = 3; // 0x3
|
||||
field public static final int NR_DUAL_CONNECTIVITY_ENABLE = 1; // 0x1
|
||||
field public static final int RADIO_POWER_OFF = 0; // 0x0
|
||||
field public static final int RADIO_POWER_ON = 1; // 0x1
|
||||
field public static final int RADIO_POWER_UNAVAILABLE = 2; // 0x2
|
||||
|
||||
@@ -10138,6 +10138,7 @@ package android.telephony {
|
||||
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle();
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isLteCdmaEvdoGsmWcdmaEnabled();
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isMobileDataPolicyEnabled(int);
|
||||
method public boolean isNrDualConnectivityEnabled();
|
||||
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook();
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isOpportunisticNetworkEnabled();
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isPotentialEmergencyNumber(@NonNull String);
|
||||
@@ -10170,6 +10171,7 @@ package android.telephony {
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataRoamingEnabled(boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMobileDataPolicyEnabledStatus(int, boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMultiSimCarrierRestriction(boolean);
|
||||
method public int setNrDualConnectivityState(int);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setOpportunisticNetworkState(boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setPreferredNetworkTypeBitmask(long);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadio(boolean);
|
||||
@@ -10209,6 +10211,11 @@ package android.telephony {
|
||||
field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
|
||||
field public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; // 0x0
|
||||
field public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; // 0xffffffff
|
||||
field public static final int ENABLE_NR_DUAL_CONNECTIVITY_INVALID_STATE = 4; // 0x4
|
||||
field public static final int ENABLE_NR_DUAL_CONNECTIVITY_NOT_SUPPORTED = 1; // 0x1
|
||||
field public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_ERROR = 3; // 0x3
|
||||
field public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_NOT_AVAILABLE = 2; // 0x2
|
||||
field public static final int ENABLE_NR_DUAL_CONNECTIVITY_SUCCESS = 0; // 0x0
|
||||
field public static final String EXTRA_ANOMALY_DESCRIPTION = "android.telephony.extra.ANOMALY_DESCRIPTION";
|
||||
field public static final String EXTRA_ANOMALY_ID = "android.telephony.extra.ANOMALY_ID";
|
||||
field public static final String EXTRA_PHONE_IN_ECM_STATE = "android.telephony.extra.PHONE_IN_ECM_STATE";
|
||||
@@ -10241,6 +10248,9 @@ package android.telephony {
|
||||
field public static final long NETWORK_TYPE_BITMASK_TD_SCDMA = 65536L; // 0x10000L
|
||||
field public static final long NETWORK_TYPE_BITMASK_UMTS = 4L; // 0x4L
|
||||
field public static final long NETWORK_TYPE_BITMASK_UNKNOWN = 0L; // 0x0L
|
||||
field public static final int NR_DUAL_CONNECTIVITY_DISABLE = 2; // 0x2
|
||||
field public static final int NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE = 3; // 0x3
|
||||
field public static final int NR_DUAL_CONNECTIVITY_ENABLE = 1; // 0x1
|
||||
field public static final int RADIO_POWER_OFF = 0; // 0x0
|
||||
field public static final int RADIO_POWER_ON = 1; // 0x1
|
||||
field public static final int RADIO_POWER_UNAVAILABLE = 2; // 0x2
|
||||
|
||||
@@ -13458,6 +13458,149 @@ public class TelephonyManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* No error. Operation succeeded.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int ENABLE_NR_DUAL_CONNECTIVITY_SUCCESS = 0;
|
||||
|
||||
/**
|
||||
* NR Dual connectivity enablement is not supported.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int ENABLE_NR_DUAL_CONNECTIVITY_NOT_SUPPORTED = 1;
|
||||
|
||||
/**
|
||||
* Radio is not available.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_NOT_AVAILABLE = 2;
|
||||
|
||||
/**
|
||||
* Internal Radio error.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int ENABLE_NR_DUAL_CONNECTIVITY_RADIO_ERROR = 3;
|
||||
|
||||
/**
|
||||
* Currently in invalid state. Not able to process the request.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int ENABLE_NR_DUAL_CONNECTIVITY_INVALID_STATE = 4;
|
||||
|
||||
/** @hide */
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@IntDef(prefix = {"ENABLE_NR_DUAL_CONNECTIVITY"}, value = {
|
||||
ENABLE_NR_DUAL_CONNECTIVITY_SUCCESS,
|
||||
ENABLE_NR_DUAL_CONNECTIVITY_NOT_SUPPORTED,
|
||||
ENABLE_NR_DUAL_CONNECTIVITY_INVALID_STATE,
|
||||
ENABLE_NR_DUAL_CONNECTIVITY_RADIO_NOT_AVAILABLE,
|
||||
ENABLE_NR_DUAL_CONNECTIVITY_RADIO_ERROR})
|
||||
public @interface EnableNrDualConnectivityResult {}
|
||||
|
||||
/**
|
||||
* Enable NR dual connectivity. Enabled state does not mean dual connectivity
|
||||
* is active. It means device is allowed to connect to both primary and secondary.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NR_DUAL_CONNECTIVITY_ENABLE = 1;
|
||||
|
||||
/**
|
||||
* Disable NR dual connectivity. Disabled state does not mean the secondary cell is released.
|
||||
* Modem will release it only if the current bearer is released to avoid radio link failure.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NR_DUAL_CONNECTIVITY_DISABLE = 2;
|
||||
|
||||
/**
|
||||
* Disable NR dual connectivity and force the secondary cell to be released if dual connectivity
|
||||
* was active. This will result in radio link failure.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE = 3;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
@IntDef(prefix = { "NR_DUAL_CONNECTIVITY_" }, value = {
|
||||
NR_DUAL_CONNECTIVITY_ENABLE,
|
||||
NR_DUAL_CONNECTIVITY_DISABLE,
|
||||
NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface NrDualConnectivityState {
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable/Disable E-UTRA-NR Dual Connectivity.
|
||||
*
|
||||
* @param nrDualConnectivityState expected NR dual connectivity state
|
||||
* This can be passed following states
|
||||
* <ol>
|
||||
* <li>Enable NR dual connectivity {@link #NR_DUAL_CONNECTIVITY_ENABLE}
|
||||
* <li>Disable NR dual connectivity {@link #NR_DUAL_CONNECTIVITY_DISABLE}
|
||||
* <li>Disable NR dual connectivity and force secondary cell to be released
|
||||
* {@link #NR_DUAL_CONNECTIVITY_DISABLE_IMMEDIATE}
|
||||
* </ol>
|
||||
* @return operation result.
|
||||
* <p>Requires Permission:
|
||||
* {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
|
||||
* @throws IllegalStateException if the Telephony process is not currently available.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public @EnableNrDualConnectivityResult int setNrDualConnectivityState(
|
||||
@NrDualConnectivityState int nrDualConnectivityState) {
|
||||
try {
|
||||
ITelephony telephony = getITelephony();
|
||||
if (telephony != null) {
|
||||
return telephony.setNrDualConnectivityState(getSubId(), nrDualConnectivityState);
|
||||
} else {
|
||||
throw new IllegalStateException("telephony service is null.");
|
||||
}
|
||||
} catch (RemoteException ex) {
|
||||
Rlog.e(TAG, "setNrDualConnectivityState RemoteException", ex);
|
||||
ex.rethrowFromSystemServer();
|
||||
}
|
||||
|
||||
return ENABLE_NR_DUAL_CONNECTIVITY_INVALID_STATE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is E-UTRA-NR Dual Connectivity enabled.
|
||||
* @return true if dual connectivity is enabled else false. Enabled state does not mean dual
|
||||
* connectivity is active. It means the device is allowed to connect to both primary and
|
||||
* secondary cell.
|
||||
* <p>Requires Permission:
|
||||
* {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE READ_PRIVILEGED_PHONE_STATE}
|
||||
* @throws IllegalStateException if the Telephony process is not currently available.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public boolean isNrDualConnectivityEnabled() {
|
||||
try {
|
||||
ITelephony telephony = getITelephony();
|
||||
if (telephony != null) {
|
||||
return telephony.isNrDualConnectivityEnabled(getSubId());
|
||||
} else {
|
||||
throw new IllegalStateException("telephony service is null.");
|
||||
}
|
||||
} catch (RemoteException ex) {
|
||||
Rlog.e(TAG, "isNRDualConnectivityEnabled RemoteException", ex);
|
||||
ex.rethrowFromSystemServer();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static class DeathRecipient implements IBinder.DeathRecipient {
|
||||
@Override
|
||||
public void binderDied() {
|
||||
|
||||
@@ -2216,4 +2216,20 @@ interface ITelephony {
|
||||
* does not exist on the SIM card.
|
||||
*/
|
||||
List<String> getEquivalentHomePlmns(int subId, String callingPackage, String callingFeatureId);
|
||||
|
||||
/**
|
||||
* Enable/Disable E-UTRA-NR Dual Connectivity
|
||||
* @return operation result. See TelephonyManager.EnableNrDualConnectivityResult for
|
||||
* details
|
||||
* @param subId the id of the subscription
|
||||
* @param enable enable/disable dual connectivity
|
||||
*/
|
||||
int setNrDualConnectivityState(int subId, int nrDualConnectivityState);
|
||||
|
||||
/**
|
||||
* Is E-UTRA-NR Dual Connectivity enabled
|
||||
* @param subId the id of the subscription
|
||||
* @return true if dual connectivity is enabled else false
|
||||
*/
|
||||
boolean isNrDualConnectivityEnabled(int subId);
|
||||
}
|
||||
|
||||
@@ -513,6 +513,8 @@ public interface RILConstants {
|
||||
int RIL_REQUEST_SET_SYSTEM_SELECTION_CHANNELS = 210;
|
||||
int RIL_REQUEST_GET_BARRING_INFO = 211;
|
||||
int RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION = 212;
|
||||
int RIL_REQUEST_ENABLE_NR_DUAL_CONNECTIVITY = 213;
|
||||
int RIL_REQUEST_IS_NR_DUAL_CONNECTIVITY_ENABLED = 214;
|
||||
int RIL_REQUEST_ALLOCATE_PDU_SESSION_ID = 215;
|
||||
int RIL_REQUEST_RELEASE_PDU_SESSION_ID = 216;
|
||||
int RIL_REQUEST_BEGIN_HANDOVER = 217;
|
||||
|
||||
Reference in New Issue
Block a user