gpt4 book ai didi

android - 使用 UsageStatsManager 获取前台应用

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

我正在尝试使用 UsageStatsManager 在带有 Marshmallow 的 Nexus 5 上获取前台应用程序。我记得它曾经有效,但出于某种原因,我现在得到包/类名称的空字符串。

这是我的实现

public String[] getForegroundPackageNameClassNameByUsageStats() {
String packageNameByUsageStats = null;
String classByUsageStats = null;
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
UsageStatsManager mUsageStatsManager = (UsageStatsManager)getSystemService("usagestats");
final long INTERVAL = 1000;
final long end = System.currentTimeMillis();
final long begin = end - INTERVAL;
final UsageEvents usageEvents = mUsageStatsManager.queryEvents(begin, end);
while (usageEvents.hasNextEvent()) {
UsageEvents.Event event = new UsageEvents.Event();
usageEvents.getNextEvent(event);
if (event.getEventType() == UsageEvents.Event.MOVE_TO_FOREGROUND) {
packageNameByUsageStats = event.getPackageName();
classByUsageStats = event.getClassName();
Log.d(TAG, "packageNameByUsageStats is" + packageNameByUsageStats + ", classByUsageStats is " + classByUsageStats);
}
}
}
return new String[]{packageNameByUsageStats,classByUsageStats};
}

出于某种原因,它不会进入 while 循环,即 usageEvents.hasNextEvent() 为 false。因此,它返回空包/类名称。

知道我做错了什么吗?

谢谢。

最佳答案

好的,所以我发现一旦我将间隔设置为 10000 而不是 1000,它就可以工作了。显然 1s 的间隔太小了。

关于android - 使用 UsageStatsManager 获取前台应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38971472/

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