如何在Android上获取前台应用程序;不包括通知

时间:2017-02-15 21:28:36

标签: android usagestatsmanager

我目前正在使用Android UsageStats在服务中的android中获取当前的前台应用程序。但是,当我从任何应用程序收到通知时,我的应用程序认为其他应用程序位于前台。 "哇,这是一个输入"

的鼻屎

基本上,我需要一种获取当前前台应用程序的方法,不包括任何通知。

知道了吗?谢谢!

修改

如果我的当前方法无法提出请求,那么我的其他选择是什么?

1 个答案:

答案 0 :(得分:0)

您可以在前台获取当前应用程序的包名称:

    private String isAppOnForeground(Context context) {
    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
    if (appProcesses == null) {
      return null;
    }

    for (RunningAppProcessInfo appProcess : appProcesses) {
      if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
        return appProcess.processName;
      }
    }
    return null;
  }