我已经写了一个前台服务,我想查看该用户正在使用的应用程序(对于"使用",我的意思是什么应用程序处于活动状态而不是在后台运行)。示例:如果用户使用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 始终只有一个元素:我的应用。我该如何解决?