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