From 1b85e7489978f8ff52d3d05a7940da39f0c04598 Mon Sep 17 00:00:00 2001 From: Rambo Wang Date: Mon, 22 Nov 2021 13:14:36 -0800 Subject: [PATCH] Make get/setSystemThresholdReportingRequestedWhileIdle @SystemApi SignalStrengthUpdateRequest#setSystemThresholdReportingRequestedWhileIdle is built to replace the deprecated feature PhoneStateListener#LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH. The only client (Bluetooth) does not allow hidden API call. @SystemApi is the next option while the API is not intended to be public yet. The javadoc is also updated to be more precise on when the permission is required. Bug: 205544105 Test: atest TelephonyManagerTest CTS-Coverage-Bug: 205602896 Change-Id: Ia72cc1c77cf5b97458f8f6191a24bfa77a861234 --- core/api/system-current.txt | 8 ++++++++ .../android/telephony/SignalStrengthUpdateRequest.java | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/api/system-current.txt b/core/api/system-current.txt index d8f5d9e34ee6..da9a4c50d3cb 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -11698,6 +11698,14 @@ package android.telephony { field public static final int ROAMING_TYPE_UNKNOWN = 1; // 0x1 } + public final class SignalStrengthUpdateRequest implements android.os.Parcelable { + method public boolean isSystemThresholdReportingRequestedWhileIdle(); + } + + public static final class SignalStrengthUpdateRequest.Builder { + method @NonNull @RequiresPermission("android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH") public android.telephony.SignalStrengthUpdateRequest.Builder setSystemThresholdReportingRequestedWhileIdle(boolean); + } + public final class SmsCbCmasInfo implements android.os.Parcelable { ctor public SmsCbCmasInfo(int, int, int, int, int, int); method public int describeContents(); diff --git a/telephony/java/android/telephony/SignalStrengthUpdateRequest.java b/telephony/java/android/telephony/SignalStrengthUpdateRequest.java index 9cb80f1814f9..4884d549e2e0 100644 --- a/telephony/java/android/telephony/SignalStrengthUpdateRequest.java +++ b/telephony/java/android/telephony/SignalStrengthUpdateRequest.java @@ -19,6 +19,7 @@ package android.telephony; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; +import android.annotation.SystemApi; import android.os.Binder; import android.os.IBinder; import android.os.Parcel; @@ -130,7 +131,10 @@ public final class SignalStrengthUpdateRequest implements Parcelable { /** * Set the builder object if require reporting on the system thresholds when device is idle. * - *

This can only used by the system caller. Requires permission + *

This is intended to be used by the system privileged caller only. When setting to + * {@code true}, signal strength update request through + * {@link TelephonyManager#setSignalStrengthUpdateRequest(SignalStrengthUpdateRequest)} + * will require permission * {@link android.Manifest.permission#LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH}. * * @param isSystemThresholdReportingRequestedWhileIdle true if request reporting on the @@ -138,6 +142,7 @@ public final class SignalStrengthUpdateRequest implements Parcelable { * @return the builder to facilitate the chaining * @hide */ + @SystemApi @RequiresPermission(android.Manifest.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH) public @NonNull Builder setSystemThresholdReportingRequestedWhileIdle( boolean isSystemThresholdReportingRequestedWhileIdle) { @@ -191,6 +196,7 @@ public final class SignalStrengthUpdateRequest implements Parcelable { * * @hide */ + @SystemApi public boolean isSystemThresholdReportingRequestedWhileIdle() { return mIsSystemThresholdReportingRequestedWhileIdle; }