如何在Android中获取已安装应用程序的完全合格的名称



我尝试创建一个可以启动其他应用程序的应用程序(F.E. Gmail或Facebook或任何已安装的应用程序)。

我尝试使用以下代码:

PackageManager pm = MainActivity.this.getPackageManager();
try
{
  Intent it = pm.getLaunchIntentForPackage("FULLY QUALIFIED NAME");
  if (it != null)
    MainActivity.this.startActivity(it);
}
catch (ActivityNotFoundException e)
{ }

但是,它需要该应用程序的完全合格的名称。

我该如何获取?有什么内置方法可以获取它们吗?

一个应用程序可能具有零,一个或属于发射器中的几个活动。因此,发射器不应该问:"所有应用程序是什么,每个应用程序的启动Intent是什么?"相反,发射器应该问:"我应该展示的所有活动是什么?"

使用PackageManagerqueryIntentActivities()完成。该示例项目实现了一个完整的启动器。关键行是:

PackageManager pm=getPackageManager();
Intent main=new Intent(Intent.ACTION_MAIN, null);
main.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> launchables=pm.queryIntentActivities(main, 0);

然后,您可以使用要渲染launchables收集的任何机制。示例项目将它们放在ListView中。

您可以获取所有类似应用的列表:

final PackageManager packageManager = getPackageManager();
List<ApplicationInfo> packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);

现在,您已将其元数据存储在List中。您可以以这样的方式获得他们的包裹名称:

for (ApplicationInfo packageInfo : packages) {
    Log.d(TAG, packageManager.getLaunchIntentForPackage(packageInfo.packageName)); 
}

相关内容

  • 没有找到相关文章

最新更新