如何在Android设备上获取正在运行的应用程序列表

时间:2016-06-24 13:23:52

标签: android

我们知道当前的一些前台应用程序包方法已经从android lollipop中删除了。所以我的问题是哪个是更好的方法来获取Android设备上的活动运行应用程序列表是通过使用"使用统计经理"或使用"辅助功能服务"? 抱歉我的英语不好..

我通过在我的Android设备中启用使用情况来尝试以下代码

private void printForegroundTask() {
String currentApp = "NULL";
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
    UsageStatsManager usm = (UsageStatsManager) this.getSystemService(Context.USAGE_STATS_SERVICE);
    long time = System.currentTimeMillis();
    List<UsageStats> appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,  time - 1000*1000, time);
    if (appList != null && appList.size() > 0) {
        SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
        for (UsageStats usageStats : appList) {
            mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
        }
        if (mySortedMap != null && !mySortedMap.isEmpty()) {
            currentApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
        }
    }
} else {
    ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> tasks = am.getRunningAppProcesses();
    currentApp = tasks.get(0).processName;
}

t.setText(currentApp);
}

但它只返回我的应用包名称..

0 个答案:

没有答案