diff options
Diffstat (limited to 'core/java/android/app/StatsManager.java')
| -rw-r--r-- | core/java/android/app/StatsManager.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/core/java/android/app/StatsManager.java b/core/java/android/app/StatsManager.java index 7746148d325a..29e9441d2c97 100644 --- a/core/java/android/app/StatsManager.java +++ b/core/java/android/app/StatsManager.java @@ -410,6 +410,36 @@ public final class StatsManager { } /** + * Returns the experiments IDs registered with statsd, or an empty array if there aren't any. + * + * @throws StatsUnavailableException if unsuccessful due to failing to connect to stats service + * @hide + */ + @RequiresPermission(allOf = {DUMP, PACKAGE_USAGE_STATS}) + public long[] getRegisteredExperimentIds() + throws StatsUnavailableException { + synchronized (this) { + try { + IStatsManager service = getIStatsManagerLocked(); + if (service == null) { + if (DEBUG) { + Slog.d(TAG, "Failed to find statsd when getting experiment IDs"); + } + return new long[0]; + } + return service.getRegisteredExperimentIds(); + } catch (RemoteException e) { + if (DEBUG) { + Slog.d(TAG, + "Failed to connect to StatsCompanionService when getting " + + "registered experiment IDs"); + } + return new long[0]; + } + } + } + + /** * Registers a callback for an atom when that atom is to be pulled. The stats service will * invoke pullData in the callback when the stats service determines that this atom needs to be * pulled. Currently, this only works for atoms with tags above 100,000 that do not have a uid. |
