android 5.0以上,通过包名判断该应用是否在运行,不需要用户手动授权

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

android 5.0以上,通过包名判断该应用是否在运行,不需要用户手动授权_第1张图片


导入之后,将如下方法,放在自己的工具类中,直接调用工具类就可使用!


public static boolean getLinuxCoreInfo(Context context, String packageName) {
        List processes = ProcessManager.getRunningForegroundApps(context);
        for (AndroidAppProcess appProcess : processes) {
            if (appProcess.getPackageName().equals(packageName) && appProcess.foreground) {
                return true;
            }
        }
        return false;
    }


参数:上下文、应用报名。

返回true就是该包名代表应用正在运行。

你可能感兴趣的:(Android)