diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl index 8131007348..bfb806123b 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl @@ -64,7 +64,7 @@ interface IRadioNetwork { oneway void setNetworkSelectionModeManual(in int serial, in String operatorNumeric, in android.hardware.radio.AccessNetwork ran); oneway void setNrDualConnectivityState(in int serial, in android.hardware.radio.network.NrDualConnectivityState nrDualConnectivityState); oneway void setResponseFunctions(in android.hardware.radio.network.IRadioNetworkResponse radioNetworkResponse, in android.hardware.radio.network.IRadioNetworkIndication radioNetworkIndication); - oneway void setSignalStrengthReportingCriteria(in int serial, in android.hardware.radio.network.SignalThresholdInfo signalThresholdInfo, in android.hardware.radio.AccessNetwork accessNetwork); + oneway void setSignalStrengthReportingCriteria(in int serial, in android.hardware.radio.network.SignalThresholdInfo[] signalThresholdInfos); oneway void setSuppServiceNotifications(in int serial, in boolean enable); oneway void setSystemSelectionChannels(in int serial, in boolean specifyChannels, in android.hardware.radio.network.RadioAccessSpecifier[] specifiers); oneway void startNetworkScan(in int serial, in android.hardware.radio.network.NetworkScanRequest request); diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalThresholdInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalThresholdInfo.aidl index 3ea6c4e5db..159d9c1547 100644 --- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalThresholdInfo.aidl +++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalThresholdInfo.aidl @@ -39,6 +39,7 @@ parcelable SignalThresholdInfo { int hysteresisDb; int[] thresholds; boolean isEnabled; + android.hardware.radio.AccessNetwork ran; const int SIGNAL_MEASUREMENT_TYPE_RSSI = 1; const int SIGNAL_MEASUREMENT_TYPE_RSCP = 2; const int SIGNAL_MEASUREMENT_TYPE_RSRP = 3; diff --git a/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl b/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl index 0db918d8f5..ffc97f31c7 100644 --- a/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl +++ b/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl @@ -364,29 +364,22 @@ oneway interface IRadioNetwork { in IRadioNetworkIndication radioNetworkIndication); /** - * Sets the signal strength reporting criteria. The resulting reporting rules are the AND of all - * the supplied criteria. For each RAN the hysteresisDb and thresholds apply to only the - * following measured quantities: - * -GERAN - RSSI - * -CDMA2000 - RSSI - * -UTRAN - RSCP - * -EUTRAN - RSRP/RSRQ/RSSNR - * -NGRAN - SSRSRP/SSRSRQ/SSSINR - * Note that reporting criteria must be individually set for each RAN. For each RAN, if none of - * reporting criteria of any measurement is set enabled (see SignalThresholdInfo.isEnabled), - * the reporting criteria for this RAN is implementation-defined. For each RAN, if any reporting - * criteria of any measure is set enabled, the reporting criteria of the other measures in this - * RAN are set disabled (see SignalThresholdInfo.isEnabled) until they are set enabled. + * Sets or clears the signal strength reporting criteria for multiple RANs in one request. + * + * The reporting criteria are set individually for each combination of RAN and measurement type. + * For each RAN type, if no reporting criteria are set, then the reporting of SignalStrength for + * that RAN is implementation-defined. If any criteria are supplied for a RAN type, then + * SignalStrength is only reported as specified by those criteria. For any RAN types not defined + * by this HAL, reporting is implementation-defined. * * @param serial Serial number of request. - * @param signalThresholdInfo Signal threshold info including the threshold values, - * hysteresisDb, hysteresisMs and isEnabled. See SignalThresholdInfo for details. - * @param accessNetwork The type of network for which to apply these thresholds. + * @param signalThresholdInfos Collection of SignalThresholdInfo specifying the reporting + * criteria. See SignalThresholdInfo for details. * * Response function is IRadioNetworkResponse.setSignalStrengthReportingCriteriaResponse() */ - void setSignalStrengthReportingCriteria(in int serial, - in SignalThresholdInfo signalThresholdInfo, in AccessNetwork accessNetwork); + void setSignalStrengthReportingCriteria( + in int serial, in SignalThresholdInfo[] signalThresholdInfos); /** * Enables/disables supplementary service related notifications from the network. diff --git a/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl b/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl index 696292dc14..584ea38222 100644 --- a/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl +++ b/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl @@ -16,6 +16,8 @@ package android.hardware.radio.network; +import android.hardware.radio.AccessNetwork; + /** * Contains the threshold values of each signal measurement type. */ @@ -86,18 +88,20 @@ parcelable SignalThresholdInfo { */ int signalMeasurement; /** - * A hysteresis time in milliseconds to prevent flapping. A value of 0 disables hysteresis. + * A hysteresis time in milliseconds for current signal measurement type to prevent flapping. + * A value of 0 disables hysteresis. */ int hysteresisMs; /** - * An interval in dB defining the required magnitude change between reports. This must be - * smaller than the smallest threshold delta. An interval value of 0 disables hysteresis. + * An interval in dB for current signal measurement type defining the required magnitude change + * between reports. This must be smaller than the smallest threshold delta. An interval value of + * 0 disables hysteresis. */ int hysteresisDb; /** - * List of threshold values. Range and unit must reference specific SignalMeasurementType. - * The threshold values for which to apply criteria. A vector size of 0 disables the use of - * thresholds for reporting. + * List of threshold values for current signal measurement type. Range and unit must reference + * specific SignalMeasurementType. The threshold values for which to apply criteria. A vector + * size of 0 disables the use of thresholds for reporting. */ int[] thresholds; /** @@ -106,4 +110,8 @@ parcelable SignalThresholdInfo { * If disabled, modem must not trigger the report based on the criteria. */ boolean isEnabled; + /** + * The Radio Access Network for current threshold info. + */ + AccessNetwork ran; }