Here are the examples of the java api class android.app.usage.UsageStatsManager taken from open source projects.
1. AppUtils#queryUsageStats()
Project: FingerTrans
File: AppUtils.java
File: AppUtils.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP) public static String queryUsageStats() { String packageName = null; UsageStatsManager usm = (UsageStatsManager) FingerApp.get().getSystemService(Context.USAGE_STATS_SERVICE); long time = System.currentTimeMillis(); List<UsageStats> appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 1000, time); if (appList != null && appList.size() > 0) { SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>(); for (UsageStats usageStats : appList) { mySortedMap.put(usageStats.getLastTimeUsed(), usageStats); } if (!mySortedMap.isEmpty()) { packageName = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } } return packageName; }
2. AppInfoEngine#getUsageStatsManager()
Project: AppPlus
File: AppInfoEngine.java
File: AppInfoEngine.java
@SuppressWarnings("ResourceType") @Deprecated private UsageStatsManager getUsageStatsManager() { UsageStatsManager usm = (UsageStatsManager) mContext.getSystemService("usagestats"); return usm; }
3. AppInfoEngine#getUsageStatsList()
Project: AppPlus
File: AppInfoEngine.java
File: AppInfoEngine.java
//////////////////////// Android L /////////////////////////////////// @Deprecated @TargetApi(Build.VERSION_CODES.LOLLIPOP) public List<UsageStats> getUsageStatsList() { UsageStatsManager usm = getUsageStatsManager(); Calendar calendar = Calendar.getInstance(); long endTime = calendar.getTimeInMillis(); calendar.add(Calendar.MONTH, -1); long startTime = calendar.getTimeInMillis(); List<UsageStats> usageStatsList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, startTime, endTime); return usageStatsList; }
4. BackgroundUtil#queryUsageStats()
Project: AndroidProcess
File: BackgroundUtil.java
File: BackgroundUtil.java
/** * ??4?????UsageStatsManager???????ndroid5.0A?????API * ??? * 1. ?????android5.0???? * 2. AndroidManifest??????<uses-permission xmlns:tools="http://schemas.android.com/tools" android:name="android.permission.PACKAGE_USAGE_STATS" * tools:ignore="ProtectedPermissions" /> * 3. ???????????-????????????????????App??? * * @param context ????? * @param packageName ???????????App??? * @return */ @TargetApi(Build.VERSION_CODES.LOLLIPOP) public static boolean queryUsageStats(Context context, String packageName) { class RecentUseComparator implements Comparator<UsageStats> { @Override public int compare(UsageStats lhs, UsageStats rhs) { return (lhs.getLastTimeUsed() > rhs.getLastTimeUsed()) ? -1 : (lhs.getLastTimeUsed() == rhs.getLastTimeUsed()) ? 0 : 1; } } RecentUseComparator mRecentComp = new RecentUseComparator(); long ts = System.currentTimeMillis(); UsageStatsManager mUsageStatsManager = (UsageStatsManager) context.getSystemService("usagestats"); List<UsageStats> usageStats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, ts - 1000 * 10, ts); if (usageStats == null || usageStats.size() == 0) { if (HavaPermissionForTest(context) == false) { Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); Toast.makeText(context, "????\n????????????-????????????????????App???", Toast.LENGTH_SHORT).show(); } return false; } Collections.sort(usageStats, mRecentComp); String currentTopPackage = usageStats.get(0).getPackageName(); if (currentTopPackage.equals(packageName)) { return true; } else { return false; } }
5. RunningTasksLollipop#getUsageStats()
Project: AcDisplay
File: RunningTasksLollipop.java
File: RunningTasksLollipop.java
@SuppressWarnings("ResourceType") @Nullable private SortedMap<Long, UsageStats> getUsageStats(@NonNull Context context) throws SecurityException { UsageStatsManager usm = (UsageStatsManager) context.getSystemService(USAGE_STATS_MANAGER); // We get usage stats for the last 30 seconds final long timeEnd = System.currentTimeMillis(); // +30 sec. final long timeBegin = timeEnd - 30 * 1000; List<UsageStats> statsList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, timeBegin, timeEnd); if (statsList != null) { // Sort the stats by the last time used SortedMap<Long, UsageStats> statsSortedMap = new TreeMap<>(); for (final UsageStats usageStats : statsList) { // Filter system decor apps if ("com.android.systemui".equals(usageStats.getPackageName())) { continue; } statsSortedMap.put(usageStats.getLastTimeUsed(), usageStats); } return statsSortedMap; } return null; }