从其他应用程序获取android:标签

时间:2012-01-27 19:19:59

标签: android

我正在编写一个Android应用程序,一个Tasker,我真的找不到获取另一个应用程序标签的方法。这是我的观点,我正在使用ListActivity,你选择一个已安装的应用程序,然后当你点击它创建意图和所有应用程序的东西,我想做的是向用户显示来自应用程序的android:标签选中,我在ResolverInfo中找到一个名为.activityInfo.labelRes的属性,我认为是用户选择的应用程序的R类的标签描述符,无论如何都要获得与该id匹配的字符串??? 谢谢! D.Gómez

1 个答案:

答案 0 :(得分:4)

您可以使用ResolveInfo的{​​{3}}方法获取活动的标签。这是一个完整的示例,它查找设备上的所有启动器活动并将它们打印到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);
}

要回答问题的第二部分,关于访问应用程序的资源:可以通过调用loadLabel(PackageManager)来访问它们,这将返回您可以使用的getPackageManager().getResourcesForApplication(String)对象,但是你的情况,这不应该是必要的。