2012-03-25 7 views
1

でタスクを実行するためのアプリケーションアイコンを取得し、私は成功し、次のスニペットを使って、現在インストールされているアプリケーションのアプリケーションアイコンを得ましたインストールされたアプリケーションだけでなく、現在アンドロイド


[OK]を、これは私がやってしまったことですし、それが働いているように見えるが、唯一返すタスクキラーのようなユーザーによって開始されたタスクや休止状態ではないシステムプロセスを取得する方法があります?カテゴリ別にフィルタリングできますか?目標は、ユーザーが最近起動したタスクのうち、現在実行中のタスクの1つにランダムなアプリケーションアイコンを返すことです。

int ii=0; 

     List< ActivityManager.RunningTaskInfo> Runningtasks= mgr.getRunningTasks(30); 
     for(ii=0;ii<Runningtasks.size();ii++) 
     { 

     randInt1 = new Random().nextInt(Runningtasks.size()); 

      ComponentName comName=Runningtasks.get(randInt1).topActivity; 
      packageName = comName.getPackageName(); 
      //String Classname = comName.getClassName(); 



      System.out.println("icon====> "+icon); 
      System.out.println("packageName====> "+packageName); 

     // Toast toast1 = Toast.makeText(pm, packageName, LONG); 
     // toast1.show(); 
     } 


     try{ 
      icon = pm.getApplicationIcon(packageName); 
      }catch(Exception e){} 

答えて

3

ActivityManager.getRunningTasks()を使用すると、実行中のtasksのリストを取得できます。そのリストには、ComponentNameであるフィールド名baseActivityを含むRunningTaskInfoがあります。

あなたのような何かを行うことができるから:

PackageManager pm = context.getPackageManager(); 
ApplicationInfo appInfo = pm.getApplicationInfo(componentName.getPackageName(), 0); 
... // rest of the code as you previously did.. 
+0

タスクキラーが表示するようなユーザーの種類によって起動されたタスクを取得する簡単な方法はありますか?上の私の編集を参照してください... –

+0

ActivityManagerのドキュメント(http://developer.android.com/reference/android/app/ActivityManager.html)を見てみると、いくつかの方法があります。 getRecentTasks()、getRunningAppProcesses()、...のように – YuviDroid

1
List<ActivityManager.RunningTaskInfo> list = activityManager.getRunningTasks(30); 

    randInt1 = new Random().nextInt(list.size()); 

    ApplicationInfo appInfo = list.get(randInt1); 
    packageName = appInfo.packageName; 
    appLabel = (String) pm.getApplicationLabel(appInfo); 
    icon = pm.getApplicationIcon(appInfo); 

    System.out.println("Icon ==> " +icon); 

ActivityManager.RunningTaskInfoクラスの概要

あなたは、現在のシステムでは "実行中" された特定のタスクについて取得できる情報。実行中のタスクは ではないことに注意してください。指定されたタスクには実際に実行中のプロセスが存在します。 これは、単にユーザーがそれに行って閉じたことがないことを意味しますが、 現在システムがそのプロセスを強制終了している可能性があります。ユーザーが戻るときに再起動するためには、

http://developer.android.com/reference/android/app/ActivityManager.RunningTaskInfo.html

、アイコンを取得しやすいだろう!

+0

は、この間違っていない:にApplicationInfoのappInfo = list.get(randInt1)。 ?リストにはApplicationInfoのサブクラスではないRunningTaskInfoが含まれています... – YuviDroid

+0

タスクキラーが表示するようなユーザーの種類によって起動されたタスクを簡単に取得できますか?上の私の編集を参照してください... –

0
Drawable icon = getPackageManager().getApplicationIcon("com.example.testnotification"); 
imageView.setImageDrawable(icon); 
関連する問題