gpt4 book ai didi

android - 使用 usageStats.getTotalTimeInForeground() 获取设备中每个应用程序在前台花费的时间

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:35 26 4
gpt4 key购买 nike

我想知道在 android 设备上运行的所有应用程序所花费的时间。我正在使用以下代码获取所有包名称。请指导我如何链接包和上述方法以获取应用程序花费的时间

这是代码

List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
for (PackageInfo pack : packs) {
if (pack.firstInstallTime != pack.lastUpdateTime) {
Log.i("n-names",
pack.applicationInfo.loadLabel(getPackageManager())
.toString());
Log.i("n-install time", pack.firstInstallTime + "");
Log.i("n-uptime", pack.lastUpdateTime + "");
UsageStats usage = null;
usage.getTotalTimeInForeground();
}
}

请告诉我如何对个别包使用上述方法

最佳答案

如果你想获取android lollipop中所有应用程序的前台运行时间,使用下面这段代码。

//具有虚拟值和对象的变量。

UsageStats usageStats;

String PackageName = "Nothing" ;

long TimeInforground = 500 ;

int minutes=500,seconds=500,hours=500 ;
UsageStatsManager mUsageStatsManager = (UsageStatsManager)getSystemService("usagestats");

long time = System.currentTimeMillis();

List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*10, time);

if(stats != null)
{
SortedMap<Long,UsageStats> mySortedMap = new TreeMap<Long,UsageStats>();
for (UsageStats usageStats : stats)
{

TimeInforground=usageStats.getTotalTimeInForeground();

PackageName=usageStats.getPackageName();

minutes = (int) ((TimeInforground / (1000*60)) % 60);

seconds = (int) (TimeInforground / 1000) % 60 ;

hours = (int) ((TimeInforground / (1000*60*60)) % 24);

Log.i("BAC", "PackageName is"+PackageName +"Time is: "+hours+"h"+":"+minutes+"m"+seconds+"s");

}

确保您在 list 文件中拥有所有正确的权限,并且应用程序可以在设置的安全性下使用。

关于android - 使用 usageStats.getTotalTimeInForeground() 获取设备中每个应用程序在前台花费的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27563401/

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