这是关于当前正在运行的流程信息。
我想捕捉当前正在运行的过程图标下出现的生动名称或同名。
使用RunningTaskInfo或RunningProcessInfo时,我只能获得com.android.browser等复杂信息。
实际上,我希望得到像Brower,Clock,Contact等名称。
我怎样才能做到这一点?请直接访问完整的教程链接或完整的解释代码。
PS:我只是一名初学者,我确信我已经探索过Android开发者网站。
答案 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);
您需要处理一些异常,但您将从中获得真实的应用名称。