@Test public void testQueryEvents_emptyEvents() throws Exception { UsageEvents events = usageStatsManager.queryEvents(1000L, 2000L); Event event = new Event(); assertThat(events.hasNextEvent()).isFalse(); assertThat(events.getNextEvent(event)).isFalse(); }
.build()); UsageEvents events = usageStatsManager.queryEvents(1000L, 2000L); Event event = new Event();
shadowOf(usageStatsManager).simulateTimeChange(10000L); UsageEvents events = usageStatsManager.queryEvents(11000L, 12000L); Event event = new Event();
/** * 获取前台应用包名(API >= 22) * <p>需要添加 {@code <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>} 权限</p> * * @param context * @return */ @TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1) private static String getForegroundPackage4(Context context) { UsageStatsManager usageStatsManager = (UsageStatsManager) context.getSystemService(Context.USAGE_STATS_SERVICE); long endTime = System.currentTimeMillis(); long beginTime = endTime - 10 * 1000; UsageEvents.Event event = new UsageEvents.Event(); UsageEvents usageEvents = usageStatsManager.queryEvents(beginTime, endTime); while (usageEvents.hasNextEvent()) { usageEvents.getNextEvent(event); if (event.getEventType() == UsageEvents.Event.MOVE_TO_FOREGROUND) { result = event.getPackageName(); } } return result; } }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) public String getForegroundApp(final Context context) { if(!Utils.hasUsageStatsPermission(context)) return null; String foregroundApp = null; UsageStatsManager mUsageStatsManager = (UsageStatsManager) context.getSystemService(Service.USAGE_STATS_SERVICE); long time = System.currentTimeMillis(); UsageEvents usageEvents = mUsageStatsManager.queryEvents(time - 1000 * 3600, time); UsageEvents.Event event = new UsageEvents.Event(); while (usageEvents.hasNextEvent()) { usageEvents.getNextEvent(event); if(event.getEventType() == UsageEvents.Event.MOVE_TO_FOREGROUND) { foregroundApp = event.getPackageName(); } } return foregroundApp ; } }
final long end = System.currentTimeMillis(); final long begin = end - INTERVAL; final UsageEvents usageEvents = mUsageStatsManager.queryEvents(begin, end);