下面代码是根据进程id获取进程名字:
1 /** 2 * 根据Pid获取当前进程的名字,一般就是当前app的包名 3 * 4 * @param context 上下文 5 * @param pid 进程的id 6 * @return 返回进程的名字 7 */ 8 private String getAppName(Context context, int pid) 9 {10 ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);11 List list = activityManager.getRunningAppProcesses();12 Iterator i = list.iterator();13 while (i.hasNext())14 {15 ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo) (i.next());16 try17 {18 if (info.pid == pid)19 {20 // 根据进程的信息获取当前进程的名字21 return info.processName;22 }23 } 24 catch (Exception e) 25 {26 e.printStackTrace();27 }28 }29 // 没有匹配的项,返回为null30 return null;31 }
代码调用:
1 // 获取当前进程 id 并取得进程名2 int pid = android.os.Process.myPid();3 String processAppName = getAppName(context,pid);
上面代码是网上找到的代码,由于我只需要获取当前进程的名字,所以我修改了一下:
1 /** 2 * 获取当前进程的名字,一般就是当前app的包名 3 * 4 * @param context 当前上下文 5 * @return 返回进程的名字 6 */ 7 public static String getAppName(Context context) 8 { 9 int pid = android.os.Process.myPid(); // Returns the identifier of this process10 ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);11 List list = activityManager.getRunningAppProcesses();12 Iterator i = list.iterator();13 while (i.hasNext())14 {15 ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo) (i.next());16 try17 {18 if (info.pid == pid)19 {20 // 根据进程的信息获取当前进程的名字21 return info.processName;22 }23 }24 catch (Exception e)25 {26 e.printStackTrace();27 }28 }29 // 没有匹配的项,返回为null30 return null;31 }