From 8d224caf989b212f8e633cc1a8b0db453300a742 Mon Sep 17 00:00:00 2001 From: Peter Visontay Date: Fri, 18 Feb 2011 16:39:19 +0000 Subject: ActivityManager exposes launch count API. Bug: 3431684 Change-Id: I49d4fb0b1620aafaf251d77700bc017859328968 --- core/java/android/app/ActivityManager.java | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'core/java/android/app/ActivityManager.java') 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 getAllPackageLaunchCounts() { + try { + IUsageStats usageStatsService = IUsageStats.Stub.asInterface( + ServiceManager.getService("usagestats")); + if (usageStatsService == null) { + return new HashMap(); + } + + Map launchCounts = new HashMap(); + 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(); + } + } } -- cgit v1.2.3