2012-01-17 7 views
0

のAndroidのカテゴリ情報を取得し、私はTISのようなコードを使用して、実行中のタスクや活動を得ることができます。のAndroidで実行中のタスク

(ActivityManager.RunningTaskInfo) this.mActivityManager.getRunningTasks() 

それから私は、パッケージ名を取得することができ、クラス名など

私の質問は、それから "カテゴリ"情報を取得する方法があるかどうかです?誰かが代替ソリューションを提案することができますか? getIntent()を呼び出すことによって、あなたの活動に意図を取得し、上:私はアプリを起動したときに、たとえば、カテゴリは

cat=[android.intent.category.LAUNCHER] 
+0

応答がありませんか?もしそれが愚かな質問であれば、また私に知らせてください。 :) – Safecoder

+0

申し訳ありませんが、私のオリジナルの投稿は明らかではないかもしれません。私のアプリケーションでは、実行中のタスクのリストを特定のカテゴリのフィルタでチェックしたいと思っています。たとえば、cat [android.intent.category.LAUNCHER]のランニングタスクのリストを取得して、ランチャーによって起動されたアクティビティのリストを取得したいとします。うまくいけば、今はっきりしています。 – Safecoder

+0

まあ、私は、ランチャーによって起動された活動のリストを取得する方法がないと思いますか? – Safecoder

答えて

1

私はあなたが何を意味するか本当にわからない、多分次は何をしたいですインテントオブジェクトはメソッドgetCategories()を呼び出します。このメソッドは、カテゴリ文字列を含むセットを返します。

+0

ありがとうございます。私は自分自身の活動のカテゴリーを取得しようとしているわけではなく、システム内の活動をすべて実行しようとしています。私はコメントとしていくつかの説明を加えました。 – Safecoder

+0

あなたの質問はこのコメントから明らかです。しかし、私はあなたが望むものを達成する方法を知らない。 –

0

あなたの問題を解決できるかどうかはわかりませんが、ActivityManager's getRecentTasks(int, int) APIを使用して最近のタスクに関する情報を入手することができます。これは、タスクを起動するために使用されたインテントに関する情報を持つActivityManager.RecentTaskInfoオブジェクトのリストを返します。 RecentTaskInfo.idフィールドを使用して、タスクを実行中のタスクにマップすることもできます。

0

私はそれを行うための直接的な方法を発見したが、これは役立つかもしれない:

Intent ApplicationIntent = new Intent(Intent.ACTION_MAIN); 
ApplicationIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

List<ResolveInfo> LauncherResolves = packageManager.queryIntentActivities(ApplicationIntent, 0); 

List<String> AppsList = new ArrayList<String>(); 

for (int i = 0; i < LauncherResolves.size(); i++) 
    AppsList.add(LauncherResolves.get(i).activityInfo.name); 

List<RunningTaskInfo> runningAppInfo = activityManager.getRunningTasks(10); 
for (int i = 0; i < runningAppInfo.size(); i++) 
{ 
    if (AppsList.contains(runningAppInfo.get(i).topActivity.getClassName())) 
    { 
     // Do what ever you want 
    } 
} 
関連する問題