在Android中获取当前的运行流程

时间:2012-07-10 07:35:32

标签: android

这是关于当前正在运行的流程信息。

我想捕捉当前正在运行的过程图标下出现的生动名称或同名。

使用RunningTaskInfoRunningProcessInfo时,我只能获得com.android.browser等复杂信息。

实际上,我希望得到像Brower,Clock,Contact等名称。

我怎样才能做到这一点?请直接访问完整的教程链接或完整的解释代码。

PS:我只是一名初学者,我确信我已经探索过Android开发者网站。

2 个答案:

答案 0 :(得分:1)

从pid获取当前的RunningAppProcessInfo

public static String getCurrentProcessName(Context context) {
    // Log.d(TAG, "getCurrentProcessName");
    int pid = android.os.Process.myPid();
    ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    for (ActivityManager.RunningAppProcessInfo processInfo : manager.getRunningAppProcesses())
    {
        // Log.d(TAG, processInfo.processName);
        if (processInfo.pid == pid)
            return processInfo.processName;
    }
    return "";
}

答案 1 :(得分:0)

获得包名后(例如com.android.browser),只需将该名称与PackageManager一起使用即可:

PackageManager pm = context.getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(name, 0);
CharSequence name = pm.getApplicationLabel(ai);

您需要处理一些异常,但您将从中获得真实的应用名称。