搜索

首页  >  问答  >  正文

Android如何得到当前正在屏幕上运行的程序包名?

ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;

这种方法在Android 5.0以上就不能用了,返回的都是桌面包。
5.0以后如何判断?还望大神赐教!

黄舟黄舟2803 天前667

全部回复(2)我来回复

  • 阿神

    阿神2017-04-17 17:25:18

    你这是在做launcher吗?检测某Activity是否在当前Task的栈顶

    回复
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:25:18

    你可以尝试下面的方法:

    ActivityManager mActivityManager =(ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
    if(Build.VERSION.SDK_INT > 20){
        String mPackageName = mActivityManager.getRunningAppProcesses().get(0).processName;
    }else{ 
      String mpackageName =  mActivityManager.getRunningTasks(1).get(0).topActivity.getPackageName();
    }

    回复
    0
  • 取消回复