Java UsageStatsManager错误的时间范围

Java UsageStatsManager错误的时间范围,java,android,usagestatsmanager,Java,Android,Usagestatsmanager,我想通过使用UsageStatsManager.queryUsageStats方法获取我的应用程序的UsageTime Calendar currentDay=Calendar.getInstance(); currentDay.setTime(new Date()); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(C

我想通过使用UsageStatsManager.queryUsageStats方法获取我的应用程序的UsageTime

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);
最后一天的参赛作品也会被计算在内:

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


并且前台时间也被计算在这个时间间隔内。如何正确限制间隔

可能与此处描述的问题相同:这是否回答了您的问题?可能与此处描述的问题相同:这是否回答了您的问题?
        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);
                }
        }