从android应用程序启动未知活动

从android应用程序启动未知活动,android,android-activity,launch,Android,Android Activity,Launch,我想制作一个android应用程序,显示应用程序列表(从android市场下载),并启动用户选择的应用程序。根据我所读到的,我必须使用这样的意图: Intent intent = new Intent(); intent.setClassName(packageName, className); startActivity(intent); 我只是希望能够启动应用程序,而不是他们可能拥有的特定活动 我的问题是:如果我不知道这些应用程序的packageName或className,如

我想制作一个android应用程序,显示应用程序列表(从android市场下载),并启动用户选择的应用程序。根据我所读到的,我必须使用这样的意图:

  Intent intent = new Intent();
  intent.setClassName(packageName, className);
  startActivity(intent);
我只是希望能够启动应用程序,而不是他们可能拥有的特定活动

我的问题是:如果我不知道这些应用程序的packageName或className,如何启动它们?或者,如果这是一个我没有开发的封闭源代码应用程序,我怎么知道他们的类名和packageName呢


谢谢。

使用
PackageManager
查找已安装的应用程序等。事实上,你会发现你做了很多你需要的事情。

简而言之,你做不到。但是,Android将让您获得一个已安装软件包的列表以及它们的完全限定类名。查看代码以获取如何获取此包列表的示例。据我所知,无法确定软件包的安装位置,但您可以将其与要预装在设备上的已知应用程序列表进行比较,然后过滤掉这些应用程序。这个想法是,如果它不是预装的应用程序,它可能是通过市场安装的。

谢谢chris,我会查看链接:)