小编its*_*sam的帖子

如何在 android (kotlin) 中使用 usageStatsManager 获取“当天”的使用统计信息

目标:
需要获取今天的使用统计信息(今天使用设备的总时间),即。12.00 am 到当前时间。

问题: 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)}")
}
Run Code Online (Sandbox Code Playgroud)

例如,当上述代码在 12 月 12 日星期三 12:40 am 运行时,结果是:(

textView 中):你花了 90 分钟 …

android kotlin android-studio usagestatsmanager

5
推荐指数
1
解决办法
1162
查看次数