4

我正在开发一个应用程序,它应该能够启动安装在手机上的另一个应用程序。目前,我成功启动了 facebook,因为 ActivityPackage 和 ActivityClass 是众所周知的。我想启动其他应用程序,例如 twitter、gplus、gtalk、gmail 等。我如何找到相应的类名称?使用 packagemanager 很容易找到包名,但我没有使用相同的方法找到类名。

4

2 回答 2

2

我假设您没有尝试在运行时执行此操作...

android-apktool可以扩展您感兴趣的包的清单。这将告诉您哪些活动可用以及应用了哪些意图过滤器。

于 2011-07-31T22:38:08.687 回答
2

我正在开发一个应用程序,它应该能够启动安装在手机上的另一个应用程序。

您可以查询PackageManager旨在启动的活动。这是一个演示这个的示例项目。

目前,我成功启动了 facebook,因为 ActivityPackage 和 ActivityClass 是众所周知的。

不要这样做。

你看,你应该意识到 Facebook 可以随时更新他们的应用程序,根据 Facebook 的选择改变活动。您应该意识到,当 Facebook 这样做时,任何依赖于原始未记录、不受支持的Intent结构(例如,类)的代码都会中断。您应该意识到,一个损坏的应用程序会导致用户在市场等上给应用程序差评和评论等。

我想启动其他应用程序,例如 twitter、gplus、gtalk、gmail 等。我如何找到相应的类名称?

不要这样做。请根据上述示例项目使用在启动器中声明为属于的活动。

于 2011-07-31T22:52:21.460 回答