从另一个应用程序调用应用程序

从另一个应用程序调用应用程序

问题描述:

在这个应用程序,我正在开发我需要加载/调用另一个已经安装在手机上的应用程序。这是一款仅供我个人使用的应用程序,因此无需检查是否安装了其他应用程序 - 我知道它是。从另一个应用程序调用应用程序

我已经搜索了几个小时这个问题,但我找不到任何工作。主要是因为查找包名和类名的准则非常糟糕。

通过cmd和adb我能够找到关于我想要调用的应用程序的信息: package:/data/app/com.soundcloud.android-1.apk=com.soundcloud.android (这也正是它在cmd窗口说。)

我想是这样的:

Intent i = new Intent(); 
i.setClassName("/data/app/com.soundcloud.android-1.apk", "com.soundcloud.android"); 
startActivity(i); 

但我的应用程序崩溃,只是代替。我用上面的代码,因为有人说,这可能会调用一个应用程序:

Intent i = new Intent(); 
i.setClassName("<package_name>","<Class Name(with package name)>"); 
startActivity(i); 

有谁知道该写什么?

P.S .:我自己的应用程序不需要关于被调用应用程序中发生的事情的任何信息。

+0

什么你难道不明白呢? i.setClassName(“”,“”); ? – Falmarri 2011-01-12 22:04:35

+0

我不知道应该在每个参数中放置什么。或者,如果它甚至会以这种方式工作。 – eightx2 2011-01-12 22:05:45

使用PackageManager以获取包的意图:

PackageManager pm = getPackageManager(); 
Intent intent = pm.getLaunchIntentForPackage("com.example.package"); 
startActivity(intent); 

该文档是 here

我想在你的例子中,com.soundcloud.android实际上是包名,所以应该是第一个参数。对于第二个,你仍然需要找出要使用的类。

如果您没有该代码,您可以通过this查看如何从apk中找到该类。