Android 从其他应用程序获取安卓:标签

Android 从其他应用程序获取安卓:标签,android,Android,我正在编写一个android应用程序,一个Tasker,我真的没有办法获得另一个应用程序的标签。这就是我的观点,我正在使用一个ListActivity,您可以选择一个已安装的应用程序,然后当您单击它创建意图和所有应用程序内容时,我要做的是向用户显示他选择的应用程序的安卓:标签,我在ResolverInfo中找到一个名为.activityInfo.labelRes的属性,我认为是用户选择的应用程序的R类的标签描述符,是否有任何方法来获取与该id匹配的字符串??? 谢谢 D.Gómez您可以使用Re

我正在编写一个android应用程序,一个Tasker,我真的没有办法获得另一个应用程序的标签。这就是我的观点,我正在使用一个ListActivity,您可以选择一个已安装的应用程序,然后当您单击它创建意图和所有应用程序内容时,我要做的是向用户显示他选择的应用程序的安卓:标签,我在ResolverInfo中找到一个名为.activityInfo.labelRes的属性,我认为是用户选择的应用程序的R类的标签描述符,是否有任何方法来获取与该id匹配的字符串??? 谢谢 D.Gómez

您可以使用
ResolveInfo
的方法获取活动的标签。下面是一个完整的示例,它查找设备上的所有启动器活动并将它们打印到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);
}
//获取包管理器
PackageManager pm=getPackageManager();
//创建与所有启动器活动匹配的意图
//(并忽略非启动器活动)
意图启动器意图=新意图(Intent.ACTION\u MAIN);
launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
//获取与目标匹配的所有活动
List launchers=pm.querytentActivities(launcherIntent,0);
用于(ResolveInfo:launchers){
//获取活动标签并打印它
CharSequence标签=信息加载标签(pm);
Log.v(“LabelTest”,“找到的应用程序:”+标签);
}
要回答问题的第二部分,关于访问应用程序的资源:可以通过调用来访问它们,这将返回一个您可以使用的对象,尽管在您的情况下,这应该不是必需的。

您可以使用
ResolveInfo
的方法来获取活动的标签。下面是一个完整的示例,它查找设备上的所有启动器活动并将它们打印到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);
}
//获取包管理器
PackageManager pm=getPackageManager();
//创建与所有启动器活动匹配的意图
//(并忽略非启动器活动)
意图启动器意图=新意图(Intent.ACTION\u MAIN);
launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
//获取与目标匹配的所有活动
List launchers=pm.querytentActivities(launcherIntent,0);
用于(ResolveInfo:launchers){
//获取活动标签并打印它
CharSequence标签=信息加载标签(pm);
Log.v(“LabelTest”,“找到的应用程序:”+标签);
}

回答问题的第二部分,关于访问应用程序的资源:可以通过调用来访问这些资源,这将返回一个您可以使用的对象,但在您的情况下,这应该不是必需的。

很高兴知道我可以访问另一个应用程序的所有资源,这是解决此问题的更通用方法,我是android编程新手,我还不太熟悉API,谢谢你的回答!很高兴知道我可以访问另一个应用程序的所有资源,这是解决这个问题的更通用的方法,我是android编程新手,我还不太熟悉API,谢谢你的回答!