0

我想知道是否可以打开一个特定的操作,例如在 gmail 应用程序中打开一封新邮件,或者在 whatsapp 之类的东西上打开新消息。

我正在尝试在我的应用程序中午餐应用程序的特定操作,因此它与更多应用程序交互。

如果可能的话如何实现。

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

或从 getInstalledPackages 获取包列表,但我找不到已发布的应用程序操作。

这取决于应用程序吗?

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

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

提示用户对该操作进行选择(如果不是默认设置)。但我找不到相关信息来午餐应用程序跳过用户输入。

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

4

1 回答 1

2

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

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

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

Intent intent = new Intent(Intent.ACTION_NAME);
intent.setComponent(new ComponentName("com.package.address","com.package.address.TargetActivity"));
startActivity(intent);
于 2013-04-30T05:31:40.400 回答