这是关于当前运行的进程信息。
我想捕获当前正在运行的进程图标下出现的生动名称或同名。
在使用 RunningTaskInfo或RunningProcessInfo时,我只能获取 com.android.browser 之类的复杂信息。
实际上,我想获取诸如 Brower、Clock、Contact 等名称。
我怎样才能做到这一点?请直接访问完整的教程链接或完整的解释代码。
PS:我只是一个初学者,我确信我已经探索了 Android 开发者网站。
这是关于当前运行的进程信息。
我想捕获当前正在运行的进程图标下出现的生动名称或同名。
在使用 RunningTaskInfo或RunningProcessInfo时,我只能获取 com.android.browser 之类的复杂信息。
实际上,我想获取诸如 Brower、Clock、Contact 等名称。
我怎样才能做到这一点?请直接访问完整的教程链接或完整的解释代码。
PS:我只是一个初学者,我确信我已经探索了 Android 开发者网站。
从 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 "";
}
获得包名称(例如 com.android.browser)后,只需将该名称与 PackageManager 一起使用:
PackageManager pm = context.getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(name, 0);
CharSequence name = pm.getApplicationLabel(ai);
您需要处理一些异常,但您会从中获得真正的应用程序名称。