在另一个应用程序中启动Android应用程序的操作

时间:2013-04-30 03:40:25

标签: android launcher installed-applications

我想知道是否有可能打开一个特定的动作我的意思是例如在gmail应用程序中打开一个新邮件,或者在whatsapp这样的东西上发布新消息。

我正在尝试在应用程序中为应用程序的特定操作提供午餐,因此它会与几个应用程序进行交互。

如果可能的话如何实现。

到目前为止,我可以使用包名称为应用程序提供午餐。

或从getInstalledPackages获取包列表但我无法发现已发布应用程序操作。

是否依赖于应用程序?

我知道我可以做类似的事情:

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");

提示用户选择该操作(如果不是默认值)。但我无法找到相关的信息午餐应用程序滑动用户输入。

我希望至少对于最流行的应用程序来说这是可能的。

1 个答案:

答案 0 :(得分:2)

getInstalledPackages几乎包含了从PackageManager获取的有关应用程序的所有内容。但它并不包含每个组件的意图。特别是,ActivityInfo不包含用于存储意图或操作以启动它的字段。据我所知,很难以编程方式得到你想要的东西。

但是对于流行的应用程序,您可以直接获得他们的apks,获取他们的AndroidManifest.xml并获得您想要的手动。

如果您想跳过用户输入,如果多个组件(应用程序)可以处理您的操作,那么您需要通过intent.setComponent()明确指定组件。

Intent intent = new Intent(Intent.ACTION_NAME);
intent.setComponent(new ComponentName("com.package.address","com.package.address.TargetActivity"));
startActivity(intent);