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

时间:2010-04-05 15:29:00

标签: android android-activity launch

我想创建一个Android应用程序,显示应用程序列表(从Android市场下载)并启动用户选择的应用程序。从我读过的内容来看,我必须使用这样的意图:

  Intent intent = new Intent();
  intent.setClassName(packageName, className);
  startActivity(intent);

我只是希望能够启动应用程序,而不是他们可以拥有的特定活动。

我的问题是:如果我不知道他们的packageName或className,我怎么能启动这些应用程序?或者,如果它是一个我没有开发的闭源应用程序,我怎么才能知道他们的className和packageName。

感谢。

2 个答案:

答案 0 :(得分:0)

使用PackageManager查找已安装的应用程序等。事实上,你会发现this book sample project可以满足你的需要。

答案 1 :(得分:0)

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