我尝试创建一个可以启动其他应用程序(例如Gmail或Facebook或任何已安装的应用程序)的应用程序。
我尝试使用以下代码:
PackageManager pm = MainActivity.this.getPackageManager();
try
{
Intent it = pm.getLaunchIntentForPackage("FULLY QUALIFIED NAME");
if (null != it)
MainActivity.this.startActivity(it);
}
catch (ActivityNotFoundException e)
{ }
但是,它需要应用程序的标准名称。
我如何获得它?是否有任何内置方法来获取它们?
一个应用程序可能具有零个,一个或多个属于启动程序的活动。因此,启动器不应询问“什么是所有应用程序,Intent
每个应用程序是什么?” 相反,启动器应询问“我应显示的所有活动是什么?”
使用PackageManager
和完成queryIntentActivities()
。该示例项目实现了一个完整的启动器。关键行是:
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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句