我目前正在使用 AndroidUsageStats
在服务内的 android 中获取当前的前台应用程序。但是,当我从任何应用程序收到通知时,我的应用程序会认为另一个应用程序在前台。“唷,那是一个鼻屎打字”
基本上,我需要一种方法来获取当前前台应用程序,不包括任何通知。
知道了?谢谢!
编辑:
如果我目前的方法无法满足我的要求,我还有哪些其他选择?
我目前正在使用 AndroidUsageStats
在服务内的 android 中获取当前的前台应用程序。但是,当我从任何应用程序收到通知时,我的应用程序会认为另一个应用程序在前台。“唷,那是一个鼻屎打字”
基本上,我需要一种方法来获取当前前台应用程序,不包括任何通知。
知道了?谢谢!
编辑:
如果我目前的方法无法满足我的要求,我还有哪些其他选择?
您可以在前台获取当前应用程序的包名:
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;
}