首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UsageStatsManager获取前台应用程序

使用UsageStatsManager获取前台应用程序
EN

Stack Overflow用户
提问于 2016-08-16 09:39:40
回答 2查看 2.9K关注 0票数 4

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

这是我的实现

代码语言:javascript
复制
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。因此,它返回空包/类名。

知道我做错什么了吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-17 01:55:30

好的,我发现一旦我把间隔设置为10000而不是1000,它就能工作了。很明显,1s间隔太小了。

票数 4
EN

Stack Overflow用户

发布于 2017-10-05 08:11:15

我自己用的。我认为,只有当应用程序到达前台时,才会更新使用率统计数据。因此,如果前台应用程序在您的“开始”时间戳之前到达前台(并停留在前台),那么您将无法得到它。:(

另一方面,当你使用很久以前,你会得到一个巨大的列表,你只需要最高的时间来确定前景应用。

,所以我所做的是创建3个不同的时间:1分钟前,1小时前和12小时前。

当我在1分钟得到一个空列表时,我会用1h重复请求,以此类推。这样我大部分时间都能得到前景。但我从来没有让它一直在工作。

我真的很怀念以前那种只问软件包管理器哪个应用程序是前台的方法(在android 5之前),新的方式有点混乱。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38971472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档