您的位置:首页 > 移动开发 > Android开发

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

2017-02-07 16:38 627 查看
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就是该包名代表应用正在运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: