- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
目标:
需要获取今天的使用情况统计信息(今天使用设备的总时间),即。中午 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 分钟?
那些看似无关紧要的时间戳是什么意思?
我在实现目标方面做错了什么吗?
最佳答案
其实我也遇到过类似的问题:
根据我对文档的理解,firstTimeStamp
和 lastTimeStamp
应该给出“此 UsageStats 表示的时间范围的开始(结束)”。
它们不同于我在 queryAndAggregateUsageStats
中作为参数给出的 beginTime
和 endTime
。
此外,totalTimeInForeground
的结果似乎更像是返回由 firstTimeStamp
/lastTimeStamp
给出的时间跨度的结果,而不是返回请求的时间跨度的结果。
为此我用谷歌填了一个错误,请看https://issuetracker.google.com/issues/118564471 .
关于android - 如何在 android (kotlin) 中使用 usageStatsManager 获取 "current day"的使用统计信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53730599/
我正在使用这个 link生成应用程序使用状态。我对所选间隔的理解是,对于 YEARLY 间隔,它会为 beginTime 和 endTimeYEAR 的数据持续时间。同样,它应该适用于 WEEKLY
背景 Google 已弃用“ActivityManager”类的函数“getRecentTasks”。现在它所做的就是获取当前应用已打开的应用列表。 我什至写了一篇关于它的帖子 here on Sta
我想显示 current bucket我的应用程序在 Android P beta 下的设备上。因此,我尝试像这样使用 UsageStatsManager 类: @Override public vo
我正在尝试使用 UsageStatsManager 在带有 Marshmallow 的 Nexus 5 上获取前台应用程序。我记得它曾经有效,但出于某种原因,我现在得到包/类名称的空字符串。 这是我的
我正在尝试从 UsageStatsManager 查询 UsageStats,目的是返回每天使用的所有应用程序包以及使用时长。 代码: public static List getUsageStats
我正在尝试使用 UsageStatsManager。我了解我需要将以下内容放入我的 Android list 中: 但是,当我尝试这样做时,Eclipse 会抛出以下错误:与元素类型“uses-pe
如果我想获取今天应用使用情况的数据,首先我允许我的应用从设置中读取应用使用统计信息,然后我使用这个查询来获取 UsageStats UsageStatsManager usm = (UsageStat
我正在尝试在 Android Wear 设备上使用 UsageStatsManager。 我做了什么: 我正在手机上运行的移动应用程序上请求权限。在用户授予权限后,我可以访问使用情况统计数据。然后我在
我正在尝试从 UsageStatsManager 查询 UsageStats。我构建了一个 DateUtils 类,它为我提供了获取每天/每月/每年(一周即将到来)的开始和结束时间的方法,如下所示:
我正在开发一个 Android TV 应用(系统应用),我正在尝试使用 UsageStatsManager 获取最近使用的应用列表。 通过以下方法, UsageStatsManager usm = g
我需要获取有关最近应用使用情况的信息。 在 API 21 之前,它被使用 getRunningTasks或 getRecentTasks获取此信息。根据文档,这些方法已在 API 21 中弃用。 有U
每当我尝试查询 UsageStatsManager 的使用情况统计信息时,我都可以正确获取最后运行的应用程序。但是,如果我拉下状态栏并且有新通知,则上次使用的应用程序(基于 UsageStats)将更
我正在尝试获取手机上当前正在运行的应用程序列表。这是我正在使用的代码: if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION
您好,我正在使用 UsageStatsManager api 向用户显示一些使用列表。但我面临一些问题。我在很多设备上都遇到这个错误,在某些设备上它工作正常。我仍在浏览这个问题。你们能帮我解决这个问题
目标: 需要获取今天的使用情况统计信息(今天使用设备的总时间),即。中午 12 点到当前时间。 问题: 1.我得到今天的时间+一些其他无法解释的时间 2.不可解释的时间戳(getTimestamp 方
下面的代码在 6.0 版本之前工作正常 if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { U
我是一名优秀的程序员,十分优秀!