From def47e0e27738c84ca86f55300110dd7e4596c48 Mon Sep 17 00:00:00 2001 From: Etan Cohen Date: Sun, 14 Nov 2021 06:59:01 +0000 Subject: [PATCH] [NETREC] Deprecate NetRec Bug: 194534319 Test: builds Change-Id: I4583fa7d9700bab80e5606f9f4aad6b162f8bf47 --- core/api/system-current.txt | 130 +++++++++--------- core/api/test-current.txt | 2 +- core/java/android/content/Context.java | 3 + core/java/android/net/NetworkKey.java | 2 + .../java/android/net/NetworkScoreManager.java | 12 +- core/java/android/net/RssiCurve.java | 2 + core/java/android/net/ScoredNetwork.java | 2 + core/java/android/net/WifiKey.java | 2 + core/java/android/provider/Settings.java | 10 ++ core/res/AndroidManifest.xml | 4 +- 10 files changed, 97 insertions(+), 72 deletions(-) diff --git a/core/api/system-current.txt b/core/api/system-current.txt index ef59b1a9bca11..96dcac3cce1be 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -257,7 +257,7 @@ package android { field public static final String REQUEST_COMPANION_PROFILE_APP_STREAMING = "android.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING"; field public static final String REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION = "android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION"; field public static final String REQUEST_COMPANION_SELF_MANAGED = "android.permission.REQUEST_COMPANION_SELF_MANAGED"; - field public static final String REQUEST_NETWORK_SCORES = "android.permission.REQUEST_NETWORK_SCORES"; + field @Deprecated public static final String REQUEST_NETWORK_SCORES = "android.permission.REQUEST_NETWORK_SCORES"; field public static final String REQUEST_NOTIFICATION_ASSISTANT_SERVICE = "android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE"; field public static final String RESET_PASSWORD = "android.permission.RESET_PASSWORD"; field public static final String RESTART_WIFI_SUBSYSTEM = "android.permission.RESTART_WIFI_SUBSYSTEM"; @@ -268,7 +268,7 @@ package android { field public static final String REVOKE_RUNTIME_PERMISSIONS = "android.permission.REVOKE_RUNTIME_PERMISSIONS"; field public static final String ROTATE_SURFACE_FLINGER = "android.permission.ROTATE_SURFACE_FLINGER"; field public static final String SCHEDULE_PRIORITIZED_ALARM = "android.permission.SCHEDULE_PRIORITIZED_ALARM"; - field public static final String SCORE_NETWORKS = "android.permission.SCORE_NETWORKS"; + field @Deprecated public static final String SCORE_NETWORKS = "android.permission.SCORE_NETWORKS"; field public static final String SECURE_ELEMENT_PRIVILEGED_OPERATION = "android.permission.SECURE_ELEMENT_PRIVILEGED_OPERATION"; field public static final String SEND_CATEGORY_CAR_NOTIFICATIONS = "android.permission.SEND_CATEGORY_CAR_NOTIFICATIONS"; field public static final String SEND_DEVICE_CUSTOMIZATION_READY = "android.permission.SEND_DEVICE_CUSTOMIZATION_READY"; @@ -2458,7 +2458,7 @@ package android.content { field public static final String MEDIA_TRANSCODING_SERVICE = "media_transcoding"; field public static final String MUSIC_RECOGNITION_SERVICE = "music_recognition"; field public static final String NETD_SERVICE = "netd"; - field public static final String NETWORK_SCORE_SERVICE = "network_score"; + field @Deprecated public static final String NETWORK_SCORE_SERVICE = "network_score"; field public static final String OEM_LOCK_SERVICE = "oem_lock"; field public static final String PERMISSION_CONTROLLER_SERVICE = "permission_controller"; field public static final String PERMISSION_SERVICE = "permission"; @@ -7694,15 +7694,15 @@ package android.net { field @NonNull public static final android.os.Parcelable.Creator CREATOR; } - public class NetworkKey implements android.os.Parcelable { - ctor public NetworkKey(android.net.WifiKey); - method @Nullable public static android.net.NetworkKey createFromScanResult(@NonNull android.net.wifi.ScanResult); - method public int describeContents(); - method public void writeToParcel(android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator CREATOR; - field public static final int TYPE_WIFI = 1; // 0x1 - field public final int type; - field public final android.net.WifiKey wifiKey; + @Deprecated public class NetworkKey implements android.os.Parcelable { + ctor @Deprecated public NetworkKey(android.net.WifiKey); + method @Deprecated @Nullable public static android.net.NetworkKey createFromScanResult(@NonNull android.net.wifi.ScanResult); + method @Deprecated public int describeContents(); + method @Deprecated public void writeToParcel(android.os.Parcel, int); + field @Deprecated @NonNull public static final android.os.Parcelable.Creator CREATOR; + field @Deprecated public static final int TYPE_WIFI = 1; // 0x1 + field @Deprecated public final int type; + field @Deprecated public final android.net.WifiKey wifiKey; } public abstract class NetworkRecommendationProvider { @@ -7711,31 +7711,31 @@ package android.net { method public abstract void onRequestScores(android.net.NetworkKey[]); } - public class NetworkScoreManager { - method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public boolean clearScores() throws java.lang.SecurityException; - method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public void disableScoring() throws java.lang.SecurityException; - method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public String getActiveScorerPackage(); - method @RequiresPermission(android.Manifest.permission.REQUEST_NETWORK_SCORES) public void registerNetworkScoreCallback(int, int, @NonNull java.util.concurrent.Executor, @NonNull android.net.NetworkScoreManager.NetworkScoreCallback) throws java.lang.SecurityException; - method @RequiresPermission(android.Manifest.permission.REQUEST_NETWORK_SCORES) public boolean requestScores(@NonNull java.util.Collection) throws java.lang.SecurityException; - method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public boolean setActiveScorer(String) throws java.lang.SecurityException; - method @RequiresPermission(android.Manifest.permission.SCORE_NETWORKS) public boolean updateScores(@NonNull android.net.ScoredNetwork[]) throws java.lang.SecurityException; + @Deprecated public class NetworkScoreManager { + method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public boolean clearScores() throws java.lang.SecurityException; + method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public void disableScoring() throws java.lang.SecurityException; + method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public String getActiveScorerPackage(); + method @Deprecated @RequiresPermission(android.Manifest.permission.REQUEST_NETWORK_SCORES) public void registerNetworkScoreCallback(int, int, @NonNull java.util.concurrent.Executor, @NonNull android.net.NetworkScoreManager.NetworkScoreCallback) throws java.lang.SecurityException; + method @Deprecated @RequiresPermission(android.Manifest.permission.REQUEST_NETWORK_SCORES) public boolean requestScores(@NonNull java.util.Collection) throws java.lang.SecurityException; + method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public boolean setActiveScorer(String) throws java.lang.SecurityException; + method @Deprecated @RequiresPermission(android.Manifest.permission.SCORE_NETWORKS) public boolean updateScores(@NonNull android.net.ScoredNetwork[]) throws java.lang.SecurityException; field @Deprecated public static final String ACTION_CHANGE_ACTIVE = "android.net.scoring.CHANGE_ACTIVE"; - field public static final String ACTION_CUSTOM_ENABLE = "android.net.scoring.CUSTOM_ENABLE"; - field public static final String ACTION_RECOMMEND_NETWORKS = "android.net.action.RECOMMEND_NETWORKS"; - field public static final String ACTION_SCORER_CHANGED = "android.net.scoring.SCORER_CHANGED"; + field @Deprecated public static final String ACTION_CUSTOM_ENABLE = "android.net.scoring.CUSTOM_ENABLE"; + field @Deprecated public static final String ACTION_RECOMMEND_NETWORKS = "android.net.action.RECOMMEND_NETWORKS"; + field @Deprecated public static final String ACTION_SCORER_CHANGED = "android.net.scoring.SCORER_CHANGED"; field @Deprecated public static final String ACTION_SCORE_NETWORKS = "android.net.scoring.SCORE_NETWORKS"; field @Deprecated public static final String EXTRA_NETWORKS_TO_SCORE = "networksToScore"; - field public static final String EXTRA_NEW_SCORER = "newScorer"; + field @Deprecated public static final String EXTRA_NEW_SCORER = "newScorer"; field @Deprecated public static final String EXTRA_PACKAGE_NAME = "packageName"; - field public static final int SCORE_FILTER_CURRENT_NETWORK = 1; // 0x1 - field public static final int SCORE_FILTER_NONE = 0; // 0x0 - field public static final int SCORE_FILTER_SCAN_RESULTS = 2; // 0x2 + field @Deprecated public static final int SCORE_FILTER_CURRENT_NETWORK = 1; // 0x1 + field @Deprecated public static final int SCORE_FILTER_NONE = 0; // 0x0 + field @Deprecated public static final int SCORE_FILTER_SCAN_RESULTS = 2; // 0x2 } - public abstract static class NetworkScoreManager.NetworkScoreCallback { - ctor public NetworkScoreManager.NetworkScoreCallback(); - method public abstract void onScoresInvalidated(); - method public abstract void onScoresUpdated(@NonNull java.util.Collection); + @Deprecated public abstract static class NetworkScoreManager.NetworkScoreCallback { + ctor @Deprecated public NetworkScoreManager.NetworkScoreCallback(); + method @Deprecated public abstract void onScoresInvalidated(); + method @Deprecated public abstract void onScoresUpdated(@NonNull java.util.Collection); } public abstract class NetworkSpecifier { @@ -7774,35 +7774,35 @@ package android.net { ctor public NetworkStats.Entry(@Nullable String, int, int, int, int, int, int, long, long, long, long, long); } - public class RssiCurve implements android.os.Parcelable { - ctor public RssiCurve(int, int, byte[]); - ctor public RssiCurve(int, int, byte[], int); - method public int describeContents(); - method public byte lookupScore(int); - method public byte lookupScore(int, boolean); - method public void writeToParcel(android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator CREATOR; - field public final int activeNetworkRssiBoost; - field public final int bucketWidth; - field public final byte[] rssiBuckets; - field public final int start; + @Deprecated public class RssiCurve implements android.os.Parcelable { + ctor @Deprecated public RssiCurve(int, int, byte[]); + ctor @Deprecated public RssiCurve(int, int, byte[], int); + method @Deprecated public int describeContents(); + method @Deprecated public byte lookupScore(int); + method @Deprecated public byte lookupScore(int, boolean); + method @Deprecated public void writeToParcel(android.os.Parcel, int); + field @Deprecated @NonNull public static final android.os.Parcelable.Creator CREATOR; + field @Deprecated public final int activeNetworkRssiBoost; + field @Deprecated public final int bucketWidth; + field @Deprecated public final byte[] rssiBuckets; + field @Deprecated public final int start; } - public class ScoredNetwork implements android.os.Parcelable { - ctor public ScoredNetwork(android.net.NetworkKey, android.net.RssiCurve); - ctor public ScoredNetwork(android.net.NetworkKey, android.net.RssiCurve, boolean); - ctor public ScoredNetwork(android.net.NetworkKey, android.net.RssiCurve, boolean, @Nullable android.os.Bundle); - method public int calculateBadge(int); - method public int describeContents(); - method public void writeToParcel(android.os.Parcel, int); - field public static final String ATTRIBUTES_KEY_BADGING_CURVE = "android.net.attributes.key.BADGING_CURVE"; - field public static final String ATTRIBUTES_KEY_HAS_CAPTIVE_PORTAL = "android.net.attributes.key.HAS_CAPTIVE_PORTAL"; - field public static final String ATTRIBUTES_KEY_RANKING_SCORE_OFFSET = "android.net.attributes.key.RANKING_SCORE_OFFSET"; - field @NonNull public static final android.os.Parcelable.Creator CREATOR; - field @Nullable public final android.os.Bundle attributes; - field public final boolean meteredHint; - field public final android.net.NetworkKey networkKey; - field public final android.net.RssiCurve rssiCurve; + @Deprecated public class ScoredNetwork implements android.os.Parcelable { + ctor @Deprecated public ScoredNetwork(android.net.NetworkKey, android.net.RssiCurve); + ctor @Deprecated public ScoredNetwork(android.net.NetworkKey, android.net.RssiCurve, boolean); + ctor @Deprecated public ScoredNetwork(android.net.NetworkKey, android.net.RssiCurve, boolean, @Nullable android.os.Bundle); + method @Deprecated public int calculateBadge(int); + method @Deprecated public int describeContents(); + method @Deprecated public void writeToParcel(android.os.Parcel, int); + field @Deprecated public static final String ATTRIBUTES_KEY_BADGING_CURVE = "android.net.attributes.key.BADGING_CURVE"; + field @Deprecated public static final String ATTRIBUTES_KEY_HAS_CAPTIVE_PORTAL = "android.net.attributes.key.HAS_CAPTIVE_PORTAL"; + field @Deprecated public static final String ATTRIBUTES_KEY_RANKING_SCORE_OFFSET = "android.net.attributes.key.RANKING_SCORE_OFFSET"; + field @Deprecated @NonNull public static final android.os.Parcelable.Creator CREATOR; + field @Deprecated @Nullable public final android.os.Bundle attributes; + field @Deprecated public final boolean meteredHint; + field @Deprecated public final android.net.NetworkKey networkKey; + field @Deprecated public final android.net.RssiCurve rssiCurve; } public class TrafficStats { @@ -7829,13 +7829,13 @@ package android.net { ctor public WebAddress(String) throws android.net.ParseException; } - public class WifiKey implements android.os.Parcelable { - ctor public WifiKey(String, String); - method public int describeContents(); - method public void writeToParcel(android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator CREATOR; - field public final String bssid; - field public final String ssid; + @Deprecated public class WifiKey implements android.os.Parcelable { + ctor @Deprecated public WifiKey(String, String); + method @Deprecated public int describeContents(); + method @Deprecated public void writeToParcel(android.os.Parcel, int); + field @Deprecated @NonNull public static final android.os.Parcelable.Creator CREATOR; + field @Deprecated public final String bssid; + field @Deprecated public final String ssid; } } diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 4b7a9df97514f..1483bdf82913d 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -2195,7 +2195,7 @@ package android.provider { field public static final String USER_PREFERRED_REFRESH_RATE = "user_preferred_refresh_rate"; field public static final String USER_PREFERRED_RESOLUTION_HEIGHT = "user_preferred_resolution_height"; field public static final String USER_PREFERRED_RESOLUTION_WIDTH = "user_preferred_resolution_width"; - field public static final String USE_OPEN_WIFI_PACKAGE = "use_open_wifi_package"; + field @Deprecated public static final String USE_OPEN_WIFI_PACKAGE = "use_open_wifi_package"; } public static final class Settings.Secure extends android.provider.Settings.NameValueTable { diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 05e2e8787d0d5..abc4d8bd06238 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -5355,9 +5355,12 @@ public abstract class Context { * {@link android.net.NetworkScoreManager} for managing network scoring. * @see #getSystemService(String) * @see android.net.NetworkScoreManager + * @deprecated see https://developer.android.com/guide/topics/connectivity/wifi-suggest for + * alternative API to propose WiFi networks. * @hide */ @SystemApi + @Deprecated public static final String NETWORK_SCORE_SERVICE = "network_score"; /** diff --git a/core/java/android/net/NetworkKey.java b/core/java/android/net/NetworkKey.java index 5cd4eb576aad9..5e0e1b7b7450f 100644 --- a/core/java/android/net/NetworkKey.java +++ b/core/java/android/net/NetworkKey.java @@ -35,8 +35,10 @@ import java.util.Objects; /** * Information which identifies a specific network. * + * @deprecated as part of the {@link NetworkScoreManager} deprecation. * @hide */ +@Deprecated @SystemApi // NOTE: Ideally, we would abstract away the details of what identifies a network of a specific // type, so that all networks appear the same and can be scored without concern to the network type diff --git a/core/java/android/net/NetworkScoreManager.java b/core/java/android/net/NetworkScoreManager.java index 0ba266345a601..7b8b5c0db335f 100644 --- a/core/java/android/net/NetworkScoreManager.java +++ b/core/java/android/net/NetworkScoreManager.java @@ -51,9 +51,13 @@ import java.util.concurrent.Executor; * permission. * * + * @deprecated No longer functional on {@link android.os.Build.VERSION_CODES#TIRAMISU} and above. + * See https://developer.android.com/guide/topics/connectivity/wifi-suggest for + * alternative APIs to suggest/configure Wi-Fi networks. * @hide */ @SystemApi +@Deprecated @SystemService(Context.NETWORK_SCORE_SERVICE) public class NetworkScoreManager { private static final String TAG = "NetworkScoreManager"; @@ -245,7 +249,7 @@ public class NetworkScoreManager { * or {@link permission#REQUEST_NETWORK_SCORES} permissions. */ @RequiresPermission(anyOf = {android.Manifest.permission.SCORE_NETWORKS, - android.Manifest.permission.REQUEST_NETWORK_SCORES}) + android.Manifest.permission.REQUEST_NETWORK_SCORES}) public String getActiveScorerPackage() { try { return mService.getActiveScorerPackage(); @@ -322,7 +326,7 @@ public class NetworkScoreManager { * hold the {@link permission#REQUEST_NETWORK_SCORES} permission. */ @RequiresPermission(anyOf = {android.Manifest.permission.SCORE_NETWORKS, - android.Manifest.permission.REQUEST_NETWORK_SCORES}) + android.Manifest.permission.REQUEST_NETWORK_SCORES}) public boolean clearScores() throws SecurityException { try { return mService.clearScores(); @@ -344,7 +348,7 @@ public class NetworkScoreManager { */ @SystemApi @RequiresPermission(anyOf = {android.Manifest.permission.SCORE_NETWORKS, - android.Manifest.permission.REQUEST_NETWORK_SCORES}) + android.Manifest.permission.REQUEST_NETWORK_SCORES}) public boolean setActiveScorer(String packageName) throws SecurityException { try { return mService.setActiveScorer(packageName); @@ -362,7 +366,7 @@ public class NetworkScoreManager { * hold the {@link permission#REQUEST_NETWORK_SCORES} permission. */ @RequiresPermission(anyOf = {android.Manifest.permission.SCORE_NETWORKS, - android.Manifest.permission.REQUEST_NETWORK_SCORES}) + android.Manifest.permission.REQUEST_NETWORK_SCORES}) public void disableScoring() throws SecurityException { try { mService.disableScoring(); diff --git a/core/java/android/net/RssiCurve.java b/core/java/android/net/RssiCurve.java index 668e96618f342..02cafb5b601ec 100644 --- a/core/java/android/net/RssiCurve.java +++ b/core/java/android/net/RssiCurve.java @@ -50,8 +50,10 @@ import java.util.Objects; * the system. * * @see ScoredNetwork + * @deprecated as part of the {@link NetworkScoreManager} deprecation. * @hide */ +@Deprecated @SystemApi public class RssiCurve implements Parcelable { private static final int DEFAULT_ACTIVE_NETWORK_RSSI_BOOST = 25; diff --git a/core/java/android/net/ScoredNetwork.java b/core/java/android/net/ScoredNetwork.java index 64b3bf1e0aa00..a46bdd9ac37e7 100644 --- a/core/java/android/net/ScoredNetwork.java +++ b/core/java/android/net/ScoredNetwork.java @@ -29,8 +29,10 @@ import java.util.Set; /** * A network identifier along with a score for the quality of that network. * + * @deprecated as part of the {@link NetworkScoreManager} deprecation. * @hide */ +@Deprecated @SystemApi public class ScoredNetwork implements Parcelable { diff --git a/core/java/android/net/WifiKey.java b/core/java/android/net/WifiKey.java index bc9d8c54090a1..2e4ea89d4257e 100644 --- a/core/java/android/net/WifiKey.java +++ b/core/java/android/net/WifiKey.java @@ -29,8 +29,10 @@ import java.util.regex.Pattern; * Information identifying a Wi-Fi network. * @see NetworkKey * + * @deprecated as part of the {@link NetworkScore} deprecation. * @hide */ +@Deprecated @SystemApi public class WifiKey implements Parcelable { diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index d3b1b407ddcf2..7979256acc679 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -12014,8 +12014,10 @@ public final class Settings { * Value to specify whether network quality scores and badging should be shown in the UI. * * Type: int (0 for false, 1 for true) + * @deprecated {@code NetworkScoreManager} is deprecated. * @hide */ + @Deprecated @Readable public static final String NETWORK_SCORING_UI_ENABLED = "network_scoring_ui_enabled"; @@ -12024,8 +12026,10 @@ public final class Settings { * when generating SSID only bases score curves. * * Type: long + * @deprecated {@code NetworkScoreManager} is deprecated. * @hide */ + @Deprecated @Readable public static final String SPEED_LABEL_CACHE_EVICTION_AGE_MILLIS = "speed_label_cache_eviction_age_millis"; @@ -12058,8 +12062,10 @@ public final class Settings { * {@link NetworkScoreManager#setActiveScorer(String)} to write it. * * Type: string - package name + * @deprecated {@code NetworkScoreManager} is deprecated. * @hide */ + @Deprecated @Readable public static final String NETWORK_RECOMMENDATIONS_PACKAGE = "network_recommendations_package"; @@ -12069,8 +12075,10 @@ public final class Settings { * networks automatically. * * Type: string package name or null if the feature is either not provided or disabled. + * @deprecated {@code NetworkScoreManager} is deprecated. * @hide */ + @Deprecated @TestApi @Readable public static final String USE_OPEN_WIFI_PACKAGE = "use_open_wifi_package"; @@ -12080,8 +12088,10 @@ public final class Settings { * {@link com.android.server.wifi.RecommendedNetworkEvaluator}. * * Type: long + * @deprecated {@code NetworkScoreManager} is deprecated. * @hide */ + @Deprecated @Readable public static final String RECOMMENDED_NETWORK_EVALUATOR_CACHE_EXPIRY_MS = "recommended_network_evaluator_cache_expiry_ms"; diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index d926f9880fcff..fe559de58a4ba 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1840,11 +1840,11 @@ - + -