static 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; } }
String topPackageName ; if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { UsageStatsManager mUsageStatsManager = (UsageStatsManager)getSystemService("usagestats"); long time = System.currentTimeMillis(); // We get usage stats for the last 10 seconds List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*10, time); // Sort the stats by the last time used if(stats != null) { SortedMap<Long,UsageStats> mySortedMap = new TreeMap<Long,UsageStats>(); for (UsageStats usageStats : stats) { mySortedMap.put(usageStats.getLastTimeUsed(),usageStats); } if(!mySortedMap.isEmpty()) { topPackageName = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } } }
public void getTopActivtyFromLolipopOnwards(){ String topPackageName ; if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { UsageStatsManager mUsageStatsManager = (UsageStatsManager)getSystemService(Context.USAGE_STATS_SERVICE); long time = System.currentTimeMillis(); // We get usage stats for the last 10 seconds List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*10, time); // Sort the stats by the last time used if(stats != null) { SortedMap<Long,UsageStats> mySortedMap = new TreeMap<Long,UsageStats>(); for (UsageStats usageStats : stats) { mySortedMap.put(usageStats.getLastTimeUsed(),usageStats); } if(mySortedMap != null && !mySortedMap.isEmpty()) { topPackageName = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); Log.e("TopPackage Name",topPackageName); } } } }
@Test public void usageStatsBuilder_noFieldsSet() { UsageStats usage = UsageStatsBuilder.newBuilder() // Don't set any fields; the object should still build. .build(); assertThat(usage.getPackageName()).isNull(); assertThat(usage.getFirstTimeStamp()).isEqualTo(0); assertThat(usage.getLastTimeStamp()).isEqualTo(0); assertThat(usage.getLastTimeUsed()).isEqualTo(0); assertThat(usage.getTotalTimeInForeground()).isEqualTo(0); }
private String printForegroundTask() { String currentApp = "NULL"; if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { UsageStatsManager usm = (UsageStatsManager)this.getSystemService("usagestats"); 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 != null && !mySortedMap.isEmpty()) { currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } } } else { ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> tasks = am.getRunningAppProcesses(); currentApp = tasks.get(0).processName; } Log.e("adapter", "Current App in foreground is: " + currentApp); return currentApp; }
private void printForegroundTask() { String currentApp = "NULL"; if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { UsageStatsManager usm = (UsageStatsManager) this.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 != null && !mySortedMap.isEmpty()) { currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } } } else { ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> tasks = am.getRunningAppProcesses(); currentApp = tasks.get(0).processName; } Log.e(TAG, "Current App in foreground is: " + currentApp); }
@Override public int compare(UsageStats t1, UsageStats t2) { o1 = t1.getLastTimeUsed(); o2 = t2.getLastTimeUsed(); return o2.compareTo(o1); } }
String topPackageName ; if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { UsageStatsManager mUsageStatsManager = (UsageStatsManager)getSystemService("usagestats"); long time = System.currentTimeMillis(); // We get usage stats for the last 10 seconds List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*10, time); // Sort the stats by the last time used if(stats != null) { SortedMap<Long,UsageStats> mySortedMap = new TreeMap<Long,UsageStats>(); for (UsageStats usageStats : stats) { mySortedMap.put(usageStats.getLastTimeUsed(),usageStats); } if(mySortedMap != null && !mySortedMap.isEmpty()) { topPackageName = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } } }
//no inspection ResourceType UsageStatsManager mUsageStatsManager = (UsageStatsManager)context.getSystemService("usagestats"); long time = System.currentTimeMillis(); // We get usage stats for the last 10 seconds List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*10, time); // Sort the stats by the last time used if(stats != null) { SortedMap<Long,UsageStats> mySortedMap = new TreeMap<>(); for (UsageStats usageStats : stats) { mySortedMap.put(usageStats.getLastTimeUsed(),usageStats); } if(mySortedMap != null && !mySortedMap.isEmpty()) { return mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } } return null;
if (Build.VERSION.SDK_INT >= 21) { String currentApp = null; UsageStatsManager usm = (UsageStatsManager) this.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 != null && !mySortedMap.isEmpty()) { currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } }
Calendar endCal = Calendar.getInstance(); Calendar beginCal = Calendar.getInstance(); beginCal.add(Calendar.MINUTE, -30); UsageStatsManager manager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE); List<UsageStats> stats = manager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, beginCal.getTimeInMillis(), endCal.getTimeInMillis()); Collections.sort(stats, new Comparator<UsageStats>() { @Override public int compare(UsageStats lhs, UsageStats rhs) { long time1 = lhs.getLastTimeUsed(); long time2 = rhs.getLastTimeUsed(); if (time1 > time2) { return -1; } else if (time1 < time2) { return 1; } return 0; } }); // The first "UsageStats" in the list will be the top application. // If the list is empty you will need to ask for permissions to use UsageStatsManager // To request permission: // startActivity(new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS));
String topPackageName ; if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { UsageStatsManager mUsageStatsManager = (UsageStatsManager)getSystemService("usagestats"); long time = System.currentTimeMillis(); // We get usage stats for the last 10 seconds List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*10, time); // Sort the stats by the last time used if(stats != null) { SortedMap<Long,UsageStats> mySortedMap = new TreeMap<Long,UsageStats>(); for (UsageStats usageStats : stats) { mySortedMap.put(usageStats.getLastTimeUsed(),usageStats); } if(!mySortedMap.isEmpty()) { topPackageName = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } } }
String topPackageName; if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { UsageStatsManager mUsageStatsManager = (UsageStatsManager) getSystemService("usagestats"); long currentTime = System.currentTimeMillis(); // get usage stats for the last 10 seconds List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, currentTime - 1000 * 10, currentTime); // search for app with most recent last used time if(stats != null) { long lastUsedAppTime = 0; for (UsageStats usageStats : stats) { if (usageStats.getLastTimeUsed() > lastUsedAppTime) { topPackageName = usageStats.getPackageName(); lastUsedAppTime = usageStats.getLastTimeUsed(); } } } }
UsageStatsManager mUsageStatsManager = (UsageStatsManager)getSystemService(Context.USAGE_STATS_SERVICE); long endTime = System.currentTimeMillis(); long beginTime = endTime - 1000*60; // We get usage stats for the last minute List<UsageStats > stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, beginTime, endTime); // Sort the stats by the last time used if(stats != null) { SortedMap<Long,UsageStats> mySortedMap = new TreeMap<Long,UsageStats>(); for (UsageStats usageStats : stats) { mySortedMap.put(usageStats.getLastTimeUsed(),usageStats); } if(mySortedMap != null && !mySortedMap.isEmpty()) { topActivity = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } }
String currentApp=null; UsageStatsManager usm= (UsageStatsManager) this.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 != null && !mySortedMap.isEmpty()) { currentApp=mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } } Log.e(TAG, "Current App in foreground is: " + currentApp); return currentApp;
@SuppressWarnings("WrongConstant") public static String getForegroundAppPackageName(Context context) { UsageStatsManager manager = (UsageStatsManager) context.getSystemService("usagestats"); long time = System.currentTimeMillis(); List<UsageStats> list = manager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 1000, time); if (list != null && !list.isEmpty()) { SortedMap<Long, UsageStats> map = new TreeMap<>(); for (UsageStats stats : list) { map.put(stats.getLastTimeUsed(), stats); } if (!map.isEmpty()) { return map.get(map.lastKey()).getPackageName(); } } return null; }
public String getForegroundApp() { String currentApp = "NULL"; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { UsageStatsManager usm = (UsageStatsManager) this.mContext.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) { Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>(); for (UsageStats usageStats : appList) { mySortedMap.put(usageStats.getLastTimeUsed(), usageStats); } if (mySortedMap != null && !mySortedMap.isEmpty()) { currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } } } else { ActivityManager am = (ActivityManager) this.mContext.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> tasks = am.getRunningAppProcesses(); currentApp = tasks.get(0).processName; } return currentApp; }
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { // intentionally using string value as Context.USAGE_STATS_SERVICE was // strangely only added in API 22 (LOLLIPOP_MR1) @SuppressWarnings("WrongConstant") UsageStatsManager usm = (UsageStatsManager) getSystemService("usagestats"); 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 != null && !mySortedMap.isEmpty()) { currentApp = mySortedMap.get( mySortedMap.lastKey()).getPackageName(); } } } else { ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> tasks = am .getRunningAppProcesses(); currentApp = tasks.get(0).processName; }
String currentApp = "NULL"; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { UsageStatsManager usm = (UsageStatsManager) activity.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 != null) && (!(mySortedMap.isEmpty()))) { currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } } } else { ActivityManager activityManager = (ActivityManager) currentlyDisplayedScreen.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> services = activityManager.getRunningTasks(Integer.MAX_VALUE); currentApp = services.get(0).topActivity.getPackageName().toString() }
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { UsageStatsManager usm = (UsageStatsManager) getSystemService("usagestats"); 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 != null && !mySortedMap.isEmpty()) { currentApp = mySortedMap.get( mySortedMap.lastKey()).getPackageName(); } } } else { ActivityManager am = (ActivityManager) getBaseContext().getSystemService(ACTIVITY_SERVICE); currentApp = am.getRunningTasks(1).get(0).topActivity .getPackageName(); }