1

背景:我有一个应用程序需要使用来自其他应用程序的意图。如果在需要它的意图时没有安装这个其他应用程序,我想提供它以供下载和安装。

问题:如果下载的应用程序在安装后立即打开(由用户),我需要它来打开第一个应用程序所需的特定意图,而不是正常打开它。见下图。

我有哪些可用选项,是否有通用模式?提前致谢。

在此处输入图像描述

4

1 回答 1

2

如果下载的应用程序在安装后立即打开(由用户),我需要它来打开第一个应用程序需要的特定意图,而不是正常打开它。

这是不可能的,严格来说。没有什么可以阻止用户按打开,这将正常运行——您无法更改它。

如果你是,嗯,“猴子蹦床”应用程序的作者,你可以想出各种技巧来识别它是在从,嗯,“动物奥运会”安装后打开的,所以它可以相应地路由它的逻辑(使用自定义粘性广播,让第二个应用程序使用一些 IPC 来询问第一个应用程序“哟,我应该做一些特别的事情吗?”等)。

还可以想象,ACTION_PACKAGE_ADDED在用户单击完成或打开(或主页或返回或其他)之前将进行广播。在这种情况下,您可以收听该广播,确定刚刚安装的应用确实涉及猿翻筋斗,然后调用startActivity(). 这对用户来说会有点刺耳,因为他们会突然从安装过程转移到这个新应用程序中。而且,由于没有记录确切的时间ACTION_PACKAGE_ADDED,您的里程可能会有所不同(例如,用户仍然有机会在广播进入您的应用程序之前点击打开)。

于 2012-09-05T16:30:15.417 回答