下面代码是根据进程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 try 17 { 18 if (info.pid == pid) 19 { 20 // 根据进程的信息获取当前进程的名字 21 return info.processName; 22 } 23 } 24 catch (Exception e) 25 { 26 e.printStackTrace(); 27 } 28 } 29 // 没有匹配的项,返回为null 30 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 process 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 try 17 { 18 if (info.pid == pid) 19 { 20 // 根据进程的信息获取当前进程的名字 21 return info.processName; 22 } 23 } 24 catch (Exception e) 25 { 26 e.printStackTrace(); 27 } 28 } 29 // 没有匹配的项,返回为null 30 return null; 31 }