2012-01-27 10 views
2

私はアンドロイドアプリ、タスカーをプログラミングしていますが、私は本当に別のアプリのラベルを取得する方法を見つけることができません。これは私の要点です。インストールされたアプリケーションを選択したListActivityを使用しています。その後、クリックするとインテントとすべてのアプリが作成されます。アプリからアンドロイド:ラベルをユーザーに表示することです私はResolverInfoで.activityInfo.labelResという属性を見つけました。ユーザーが選択したアプリのRクラスのラベル記述子があると思いますが、そのIDと一致する文字列を取得するにはどうしますか? ありがとう! D.Gómez他のアプリケーションからアンドロイド:ラベルを取得

答えて

4

ResolveInfoloadLabel(PackageManager)メソッドを使用して、アクティビティのラベルを取得できます。ここでは、デバイス上のすべてのランチャーの活動を検出し、logcatにそれらを印刷し、完全な例を示します。

// Get the package manager 
PackageManager pm = getPackageManager(); 
// Create an intent that matches all launcher activities 
// (and ignores non-launcher activities) 
Intent launcherIntent = new Intent(Intent.ACTION_MAIN); 
launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

// Get all activites matching the intent 
List<ResolveInfo> launchers = pm.queryIntentActivities(launcherIntent, 0); 

for(ResolveInfo info : launchers) { 
    // Get the activity label and print it 
    CharSequence label = info.loadLabel(pm); 
    Log.v("LabelTest", "App found: " + label); 
} 

アプリケーションのリソースへのアクセスについては、あまりにもあなたの質問の後半部分に答えるために:彼らは呼び出してアクセスすることができますgetPackageManager().getResourcesForApplication(String)は、使用することができるResourcesオブジェクトを返しますが、必要ではない場合もあります。

+0

ありがとうございます!それは動作します! – DGomez

+0

私は別のアプリのすべてのリソースにアクセスできることを知っていて、問題へのより一般的なアプローチです、私はアンドロイドプログラミングでは新しく、私はまだAPIに慣れていません。 – DGomez

関連する問題