diff --git a/core/java/android/net/INetworkScoreService.aidl b/core/java/android/net/INetworkScoreService.aidl index 9cc256ec65108..f249daf876267 100644 --- a/core/java/android/net/INetworkScoreService.aidl +++ b/core/java/android/net/INetworkScoreService.aidl @@ -132,5 +132,14 @@ interface INetworkScoreService oneway void requestRecommendationAsync(in RecommendationRequest request, in RemoteCallback remoteCallback); + /** + * Returns metadata about the active scorer or null if there is no active scorer. + */ NetworkScorerAppManager.NetworkScorerAppData getActiveScorer(); + + /** + * Returns the list of available scorer apps. The list will be empty if there are + * no valid scorers. + */ + List getAllValidScorers(); } diff --git a/core/java/android/net/NetworkScoreManager.java b/core/java/android/net/NetworkScoreManager.java index 2875580971aef..8f3af6624996e 100644 --- a/core/java/android/net/NetworkScoreManager.java +++ b/core/java/android/net/NetworkScoreManager.java @@ -37,6 +37,7 @@ import com.android.internal.util.Preconditions; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.List; import java.util.concurrent.CompletableFuture; /** @@ -199,6 +200,20 @@ public class NetworkScoreManager { } } + /** + * Returns the list of available scorer apps. The list will be empty if there are + * no valid scorers. + * + * @hide + */ + public List getAllValidScorers() { + try { + return mService.getAllValidScorers(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + /** * Update network scores. * diff --git a/core/java/android/net/NetworkScorerAppManager.java b/core/java/android/net/NetworkScorerAppManager.java index f3cbb52e500d6..a166c7ffffe7a 100644 --- a/core/java/android/net/NetworkScorerAppManager.java +++ b/core/java/android/net/NetworkScorerAppManager.java @@ -126,6 +126,14 @@ public class NetworkScorerAppManager { } } + /** + * Returns the list of available scorer apps. The list will be empty if there are + * no valid scorers. + */ + public List getAllValidScorers() { + return Collections.emptyList(); + } + /** * @return A {@link NetworkScorerAppData} instance containing information about the * best configured network recommendation provider installed or {@code null} diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java index 0ac51b90249ed..f9b5db6c0b0ed 100644 --- a/services/core/java/com/android/server/NetworkScoreService.java +++ b/services/core/java/com/android/server/NetworkScoreService.java @@ -718,6 +718,15 @@ public class NetworkScoreService extends INetworkScoreService.Stub { return null; } + /** + * Returns the list of available scorer apps. The list will be empty if there are + * no valid scorers. + */ + @Override + public List getAllValidScorers() { + return mNetworkScorerAppManager.getAllValidScorers(); + } + @Override public void disableScoring() { // Only the active scorer or the system should be allowed to disable scoring.