2

这是关于当前运行的进程信息。

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

在使用 RunningTaskInfoRunningProcessInfo时,我只能获取 com.android.browser 之类的复杂信息。

实际上,我想获取诸如 Brower、Clock、Contact 等名称。

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

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

4

2 回答 2

2

从 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 "";
}
于 2015-09-03T17:06:22.330 回答
0

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

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

您需要处理一些异常,但您会从中获得真正的应用程序名称。

于 2014-03-04T12:12:31.357 回答