Fwiw, this is soooooooo not something you should do in a normal app.  Going
it getting a list of running apps, arbitrarily bounded to 100, is a big clue
of this.

And in general, there is no one single package name associated with a pid.
You really shouldn't be dealing with pids; the identity of most everything
is based on its uid, and the pid is fairly irrelevent.  (Not that a uid
necessarily has a single package name associated with it either.)

On Tue, Feb 24, 2009 at 3:41 PM, sm1 <[email protected]> wrote:

>
> In free app *Device Internals for r1*, I get the running services this
> way:
>
>  StringBuffer getRunningServices(ActivityManager am){
>    StringBuffer buf = new StringBuffer();
>    buf.append("\n\nRunning Services:");
>    List<ActivityManager.RunningServiceInfo> list = null;
>    try{
>      list = am.getRunningServices(100);
>    }catch(Throwable ex){
>      buf.append("\n "+ex);
>      return buf;
>    }
>    if(list.isEmpty()){
>      buf.append(" None listed.");
>      return buf;
>    }
>    int i = 1;
>    for(ActivityManager.RunningServiceInfo info: list){
>      buf.append("\n ["+i+"] pid {"+info.pid+"}:");
>      buf.append("\n  foreground {"+info.foreground+"}");
>      buf.append("\n  active since {"+info.activeSince+"} millis =
> "+millisToSignHhMmSs(info.activeSince)+" "+HMS);
>      buf.append("\n  last activity time {"+info.lastActivityTime+"}
> millis = "+millisToSignHhMmSs(info.lastActivityTime)+" "+HMS);
>      buf.append("\n  client count {"+info.clientCount+"}");
>      buf.append("\n  crash count {"+info.crashCount+"}");
>      buf.append("\n  service class {"+info.service.getClassName()
> +"}");
>      buf.append("\n  process {"+info.process+"}");
>      if(info.restarting==0){
>        buf.append("\n  restarting at {"+info.restarting+"} zero means
> not scheduled to restart");
>      }else{
>        buf.append("\n  restarting at {"+info.restarting+"} millis =
> "+millisToSignHhMmSs(info.restarting)+" "+HMS);
>      }
>      buf.append("\n  started {"+info.started+"}");
>      //buf.append("\n  toString {"+info.toString()+"}");
>      ++i;
>    }
>    return buf;
>  }
>
> And this will get you one process name if you know the Pid:
>
>  /** @return null when givenPid not found in list of 100 first
> services. */
>  String getProcessNameFromPid(int givenPid){
>    ActivityManager am = (ActivityManager) getSystemService
> (Context.ACTIVITY_SERVICE);
>    List<ActivityManager.RunningServiceInfo> list =
> am.getRunningServices(100);
>    for(ActivityManager.RunningServiceInfo info: list){
>      if(info.pid == givenPid){
>        return info.process;
>      }
>    }
>    return null;
>  }
>
> cheers,
> serge
>
>
> On Feb 24, 4:23 am, sohail khan <[email protected]> wrote:
> > Hi all,
> >
> > How do I get the Package Name if I am having the PID of the process. For
> > example, if I want to output a list of currently
> > running processes, I can get the PIDs but how do I get the names of the
> > PIDs?
> >
> > Thanks.
> > --
> > sohail
> >
>


-- 
Dianne Hackborn
Android framework engineer
[email protected]

Note: please don't send private questions to me, as I don't have time to
provide private support.  All such questions should be posted on public
forums, where I and others can see and answer them.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to