2010-10-05 8 views
14

Ich versuche, ein Programm zu machen, das alle aktiven Anwendungen zeigt.Aktiv werden Anwendungsname in Android

Ich suchte überall, aber konnte nur Code finden, der nur den Paketnamen zeigt.

Es wäre eine große Hilfe sein, wenn Sie Meister mir sagen kann, wie alle aktiven Anwendungsname

Antwort

33

Haben Sie versucht, ActivityManager.getRunningAppProcesses() mit angezeigt werden? Hier ist der Beispielcode für das Abrufen von Namen:

ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE); 
List l = am.getRunningAppProcesses(); 
Iterator i = l.iterator(); 
PackageManager pm = this.getPackageManager(); 
while(i.hasNext()) { 
    ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next()); 
    try { 
    CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA)); 
    Log.w("LABEL", c.toString()); 
    }catch(Exception e) { 
    //Name Not FOund Exception 
    } 
}

+0

ja..ich habe versucht..aber in ActivityManager.getRunningAppProcess() gibt es nur eine Option zum Abrufen von ProcessName. Aber ich brauche den ApplicationName dieser Prozesse und es gibt keine Möglichkeit, die ich darin finden könnte. – Shijilal

+0

Ich habe die Antwort mit dem Arbeitscode bearbeitet. – bhups

+0

@bhups können Sie mir sagen, wie kann ich nur das System finden, auf dem Apps nicht installiert sind? – user3233280

1

Wenn Sie den Paketnamen bekommen, sollten Sie in der Lage sein, zusätzliche Informationen über die Anwendung zu erhalten mit der Packagemanager:

http://developer.android.com/reference/android/content/pm/PackageManager.html

Es gibt direkte Methoden zum Abrufen der Anwendungssymbol, ApplicationInfo und ActivityInfo Objekte. Aus der Spitze meines Kopfes weiß ich nicht, welches Sie zu dem lesbaren Namen führen würde, aber wenn es nicht direkt durch eine der Methoden hier zugänglich ist, sollte es von den Anwendungsressourcen aus zugänglich sein (auch von dieser Klasse aus zugänglich).

-2

Ich habe einige falsche Annahmen getroffen, als ich diesen Beitrag gemacht habe, und habe nun festgestellt, dass sie falsch waren. - gelöscht