UsageStatsManager给出错误的结果

时间:2019-02-25 17:58:02

标签: java android

我正在打印时间,每个应用程序的使用时间是从12:00 AM到当前时间。 我为此使用了usageStatsManager。

下面是我的相同方法

void printUsageStat() {
    long totalUsageTime =0L; //Stores Total time usage of all the apps
    UsageStatsManager usageStatsManager= (UsageStatsManager)getSystemService(USAGE_STATS_SERVICE);
    Calendar calendar=Calendar.getInstance();
    long endTime=calendar.getTimeInMillis();//Sets endTime to current Time

    calendar.set(Calendar.HOUR_OF_DAY,0);
    calendar.set(Calendar.MINUTE,1);// Sets the startTime 12:00 AM

    long startTime=calendar.getTimeInMillis();

    SimpleDateFormat simpleDateFormat=new SimpleDateFormat("dd//MM//YYYY hh:mm:aa"); //Just for printing Times
    final List<UsageStats> queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST,startTime,endTime);

    Log.d("YOYO", "results for " + simpleDateFormat.format(startTime) + " - " + simpleDateFormat.format(endTime));

    for (UsageStats app : queryUsageStats) {
        Log.d("YOYO", app.getPackageName() + " | " + app.getTotalTimeInForeground()/60000); //Converting to minutes
        totalUsageTime+=app.getTotalTimeInForeground();
    }
    totalUsageTime/=60000;
    Log.d("YOYO",String.valueOf(totalUsageTime));
}

但是,我的代码打印出的总使用时间不正确,比Playstore中的任何其他应用(例如Digital Wellbeing(FROM GOOGLE))

我的一些应用程序使用的时间正确,而某些应用程序显示的时间却比实际时间长。 我还尝试过更改INTERVAL_DAILY和INTERVAL_BEST之类的间隔,但结果几乎相似。

某些应用程序时间正确。 自几周以来,我一直在努力寻找解决方案,但没有成功。

0 个答案:

没有答案