5.0以下,直接使用如下代码:
ActivityManager activityManager = (ActivityManager) context
.getSystemService(context.ACTIVITY_SERVICE);
ComponentName runningActivity=activityManager.getRunningTasks(1).get(0).topActivity;
packName=runningActivity.getPackageName();
简单轻松加愉快。
5.0以上复杂了点,使用UsageStatsManager类可以实现,但是需要用户手动授权,应用要求静默获取,所以pass掉。
经过各种度娘,与楼主自己的整理,已经变的十分简单,使用过程如下。
5.0以上:
将图片中的类全部导入项目中,无需其他配置,只需单纯的导入类即可。(这些类以上传到资源中,网址:
http://download.csdn.net/detail/qq_24800377/9749114
)
导入之后,将如下方法,放在自己的工具类中,直接调用工具类就可使用!
public static boolean getLinuxCoreInfo(Context context, String packageName) {
List<AndroidAppProcess> processes = ProcessManager.getRunningForegroundApps(context);
for (AndroidAppProcess appProcess : processes) {
if (appProcess.getPackageName().equals(packageName) && appProcess.foreground) {
return true;
}
}
return false;
}
参数:上下文、应用报名。
返回true就是该包名代表应用正在运行。