Objective:
Need to get the usage stats for today (total time for which the device was used today) ie. 12.00 am to current time.
Problem:
1.I get today\'s ti
I noticed several problems with your approach.
time.set(Calendar.SECOND,0)
and time.set(Calendar.MILLISECOND,0)
ft=value.totalTimeInForeground/60000
I would recommend Java Time (ThreeTenBP) to handle DateTime and Duration more accurately. I create a new function to compare and indeed the results are different.
fun showtime2(){
val start = LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli()
val end = ZonedDateTime.now().toInstant().toEpochMilli()
val usageStatsManager = getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager
val stats = usageStatsManager.queryAndAggregateUsageStats(start, end)
val total = Duration.ofMillis(stats.values.map { it.totalTimeInForeground }.sum())
println("YOU SPENT ${total.toMinutes()} mins.")
}
Your output
YOU SPENT 577 mins.
My output
YOU SPENT 582 mins.