android 5.0之后如何获取当前运行的应用包名

先看看android5.0之前的获取方法:
// 1、得到当前运行的任务栈,参数就是得到多少个任务栈,1就是只拿一个任务栈
// 对应的也就是正在运行的任务栈啦 ,注意别忘了在清单文件中添加获取的权限
List runTaskInfos =
activityManager.getRunningTasks(1);
//拿到当前运行的任务栈
ActivityManager.RunningTaskInfo runningTaskInfo = runTaskInfos.get(0);
//拿到要运行的Activity的包名
runningpackageName = runningTaskInfo.baseActivity.getPackageName();

5.0以后可以通过
RunningAppProcessInfo对象拿到uid,通过下面方法就能拿到包名
getPackageManager().getPackagesForUid(uid);


ActivityManager activityManager = (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);
String _pkgName = activityManager.getRunningTasks(1).get(0).topActivity.getPackageName();

你可能感兴趣的:(Android--新特性,Android--小知识点)