获取当前运行应用信息的几种方法

来源:互联网 发布:600756 浪潮软件 编辑:程序博客网 时间:2024/06/05 10:41

android5.0之前,获取任务栈最顶端的activity名


public String getTopActivity(){ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);/** 获取当前正在运行的任务栈列表, 越是靠近当前运行的任务栈会被排在第一位,之后的以此类推 */List<RunningTaskInfo> runningTasks = manager.getRunningTasks(1);/** 获得当前最顶端的任务栈,即前台任务栈 */RunningTaskInfo runningTaskInfo = runningTasks.get(0);/** 获取前台任务栈的最顶端 Activity */String topActivity = runningTaskInfo.topActivity.toString();return topActivity;}


android5.0之前,获取当前应用包名


public String getTopPackage(){ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);/** 获取当前正在运行的任务栈列表, 越是靠近当前运行的任务栈会被排在第一位,之后的以此类推 */List<RunningTaskInfo> runningTasks = manager.getRunningTasks(1);/** 获得当前最顶端的任务栈,即前台任务栈 */RunningTaskInfo runningTaskInfo = runningTasks.get(0);/** 获取前台任务栈的最顶端 Activity的包名 */String packageName = runningTaskInfo.topActivity.getPackageName();return packageName;}

android5.0之后,当前activity已经无法获取,系统没有暴露相关的API,或许可以通过反射,但我还不知如何实现,获取当前应用的包名可以通过如下方法


public String getTopPackageName(){ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);String processName = manager.getRunningAppProcesses().get(0).processName;return processName;}






0 0
原创粉丝点击