Я хочу получить время использования моих приложений с помощью метода UsageStatsManager.queryUsageStats.
Calendar currentDay=Calendar.getInstance();
currentDay.setTime(new Date());
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 1);
long start = calendar.getTimeInMillis();
System.out.println("Startdate "+df.format(new Date(start)));
long end = System.currentTimeMillis();
final List<UsageStats> usageStatsList=usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,start,end);
Начальная дата верна: I / System.out: Начальная дата 30.10.19 00:01
Но когда я перебираю записи:
for(UsageStats usageStats :usageStatsList){
if(isCheckApplication(usageStats.getPackageName()) && usageStats.getTotalTimeInForeground()>0) {
foreGround = foreGround + usageStats.getTotalTimeInForeground();
System.out.println(usageStats.getPackageName()+" "+df.format(usageStats.getFirstTimeStamp())+" "+df.format(usageStats.getLastTimeUsed())+" "+usageStats.getTotalTimeInForeground()/1000/60);
}
}
Также учитываются записи за последний день:
org.wikipedia 29.10.19 18:42 29.10.19 23:46 1
com.android.chrome 29.10.19 18:42 30.10.19 08:34 41 ...
Также для этого интервала учитывается время переднего плана. Как правильно ограничить интервал