diff options
| author | Peter Visontay <pvisontay@google.com> | 2011-02-18 16:39:19 +0000 |
|---|---|---|
| committer | Peter Visontay <pvisontay@google.com> | 2011-02-22 11:51:49 +0000 |
| commit | 8d224caf989b212f8e633cc1a8b0db453300a742 (patch) | |
| tree | 063e2b5f47049d1b622ae87d196d1b5a6ec7b0b7 /core/java/android/app/ActivityManager.java | |
| parent | 2fad616237ce2db020eb6c0e03084ece291aee3c (diff) | |
ActivityManager exposes launch count API.
Bug: 3431684
Change-Id: I49d4fb0b1620aafaf251d77700bc017859328968
Diffstat (limited to 'core/java/android/app/ActivityManager.java')
| -rw-r--r-- | core/java/android/app/ActivityManager.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index a660076b4b03..77dc08486810 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -30,11 +30,17 @@ import android.os.RemoteException; import android.os.Handler; import android.os.Parcel; import android.os.Parcelable; +import android.os.ServiceManager; import android.os.SystemProperties; import android.text.TextUtils; import android.util.DisplayMetrics; +import android.util.Log; +import com.android.internal.app.IUsageStats; +import com.android.internal.os.PkgUsageStats; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Interact with the overall activities running in the system. @@ -1233,4 +1239,29 @@ public class ActivityManager { public static boolean isRunningInTestHarness() { return SystemProperties.getBoolean("ro.test_harness", false); } + + /** + * Returns the launch count of each installed package. + * + * @hide + */ + public Map<String, Integer> getAllPackageLaunchCounts() { + try { + IUsageStats usageStatsService = IUsageStats.Stub.asInterface( + ServiceManager.getService("usagestats")); + if (usageStatsService == null) { + return new HashMap<String, Integer>(); + } + + Map<String, Integer> launchCounts = new HashMap<String, Integer>(); + for (PkgUsageStats pkgUsageStats : usageStatsService.getAllPkgUsageStats()) { + launchCounts.put(pkgUsageStats.packageName, pkgUsageStats.launchCount); + } + + return launchCounts; + } catch (RemoteException e) { + Log.w(TAG, "Could not query launch counts", e); + return new HashMap<String, Integer>(); + } + } } |
