gpt4 book ai didi

android - 如何在 android (kotlin) 中使用 usageStatsManager 获取 "current day"的使用统计信息

转载 作者:太空狗 更新时间:2023-10-29 13:02:35 25 4
gpt4 key购买 nike

目标:
需要获取今天的使用情况统计信息(今天使用设备的总时间),即。中午 12 点到当前时间。

问题:
1.我得到今天的时间+一些其他无法解释的时间
2.不可解释的时间戳(getTimestamp 方法检索的使用统计数据的开始和结束)
时间段不相关。我将开始时间设为上午 12 点,将结束时间设为当前时间,但对于使用统计信息,我得到完全不相关的“.firstTimeStamp”和“.lastTimeStamp”(据推测返回使用统计数据的开始和结束)。

*已经完成了权限授予部分,这是我用来获取总时间(以分钟为单位)的函数。

fun showtime(){

val time=Calendar.getInstance()
time.set(Calendar.HOUR_OF_DAY,0)
time.set(Calendar.MINUTE,0)

val start=time.timeInMillis
val end= System.currentTimeMillis()

val usageStatsManager = getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager
var stats = usageStatsManager.queryAndAggregateUsageStats(start,end)

var x:Long=0
var ft:Long=0
var v:Long=0
var l:Long=0

for ((key,value) in stats) {
ft=value.totalTimeInForeground/60000
textField1.append("$key = $ft mins")
textField1.append("\n")
x=x+ft
v=value.firstTimeStamp
l=value.lastTimeStamp
}

textView.setText("YOU SPENT $x mins.")
textView2.setText("${Date(v)} to \n${Date(l)}")
}

例如,当上述代码在 Wed 12 Dec 12:40 am 运行时,结果为:
(在 textView 中):
你花了 90 分钟
(在 textView2 中):
2018 年 12 月 11 日星期二 16:23:19 GMT +05:30 至 2018 年 12 月 11 日星期二 19:38:45 +05:30

如何在短短 40 分钟内使用手机 90 分钟?
那些看似无关紧要的时间戳是什么意思?
我在实现目标方面做错了什么吗?

最佳答案

其实我也遇到过类似的问题:

根据我对文档的理解,firstTimeStamplastTimeStamp 应该给出“此 UsageStats 表示的时间范围的开始(结束)”。

它们不同于我在 queryAndAggregateUsageStats 中作为参数给出的 beginTimeendTime

此外,totalTimeInForeground 的结果似乎更像是返回由 firstTimeStamp/lastTimeStamp 给出的时间跨度的结果,而不是返回请求的时间跨度的结果。

为此我用谷歌填了一个错误,请看https://issuetracker.google.com/issues/118564471 .

关于android - 如何在 android (kotlin) 中使用 usageStatsManager 获取 "current day"的使用统计信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53730599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com