检查用户是否正在使用特定应用程序

时间:2017-08-12 13:02:42

标签: java android

我已经写了一个前台服务,我想查看该用户正在使用的应用程序(对于"使用",我的意思是什么应用程序处于活动状态而不是在后台运行)。示例:如果用户使用Instagram,如果packageName等于Instagram软件包的名称,我想返回true。

这是我尝试过的但没有幸运,因为我只看到了我的应用,而且我已经打开了Chrome以检查Chrome进程是否会出现在列表中:

public static boolean isAppRunning(final Context context, final String packageName) {
    final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

    final List<ActivityManager.RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
    if (procInfos != null)
    {
        for (final ActivityManager.RunningAppProcessInfo processInfo : procInfos) {
            if (processInfo.processName.equals(packageName)) {
                return true;
            }
        }
    }
    return false;
}

对象 procInfos 始终只有一个元素:我的应用。我该如何解决?

0 个答案:

没有答案