Java tutorial
//package com.java2s; /** * Copyright (C) Azureus Software, Inc, All Rights Reserved. * <p/> * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ import java.io.*; import java.util.*; import android.app.*; import android.content.*; import android.content.pm.PackageManager; import android.util.Log; public class Main { private static final String TAG = "Utils"; public static String getProcessName(Context context, int pID) { BufferedReader cmdlineReader = null; try { cmdlineReader = new BufferedReader( new InputStreamReader(new FileInputStream("/proc/" + pID + "/cmdline"), "iso-8859-1"), 100); int c; StringBuilder processName = new StringBuilder(); while ((c = cmdlineReader.read()) > 0) { processName.append((char) c); } return processName.toString(); } catch (Throwable ignore) { } finally { if (cmdlineReader != null) { try { cmdlineReader.close(); } catch (IOException e) { } } } return getProcessName_PM(context, pID); } /** * Get Process Name by getRunningAppProcesses * <p/> * It's been reported that sometimes, the list returned from * getRunningAppProcesses simply doesn't contain your own process * (especially when called from Application). * Use {@link #getProcessName(Context, int)} instead */ public static String getProcessName_PM(Context context, int pID) { String processName = ""; ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List l = am.getRunningAppProcesses(); Iterator i = l.iterator(); PackageManager pm = context.getPackageManager(); while (i.hasNext()) { ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo) (i.next()); try { if (info.pid == pID) { return info.processName; } } catch (Exception e) { Log.e(TAG, "getAppName: error", e); } } return processName; } }