我正在打印时间,每个应用程序的使用时间是从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之类的间隔,但结果几乎相似。
某些应用程序时间正确。 自几周以来,我一直在努力寻找解决方案,但没有成功。