背景:我有一个应用程序需要使用来自其他应用程序的意图。如果在需要它的意图时没有安装这个其他应用程序,我想提供它以供下载和安装。
问题:如果下载的应用程序在安装后立即打开(由用户),我需要它来打开第一个应用程序所需的特定意图,而不是正常打开它。见下图。
我有哪些可用选项,是否有通用模式?提前致谢。
背景:我有一个应用程序需要使用来自其他应用程序的意图。如果在需要它的意图时没有安装这个其他应用程序,我想提供它以供下载和安装。
问题:如果下载的应用程序在安装后立即打开(由用户),我需要它来打开第一个应用程序所需的特定意图,而不是正常打开它。见下图。
我有哪些可用选项,是否有通用模式?提前致谢。
如果下载的应用程序在安装后立即打开(由用户),我需要它来打开第一个应用程序需要的特定意图,而不是正常打开它。
这是不可能的,严格来说。没有什么可以阻止用户按打开,这将正常运行——您无法更改它。
如果你是,嗯,“猴子蹦床”应用程序的作者,你可以想出各种技巧来识别它是在从,嗯,“动物奥运会”安装后打开的,所以它可以相应地路由它的逻辑(使用自定义粘性广播,让第二个应用程序使用一些 IPC 来询问第一个应用程序“哟,我应该做一些特别的事情吗?”等)。
还可以想象,ACTION_PACKAGE_ADDED
在用户单击完成或打开(或主页或返回或其他)之前将进行广播。在这种情况下,您可以收听该广播,确定刚刚安装的应用确实涉及猿翻筋斗,然后调用startActivity()
. 这对用户来说会有点刺耳,因为他们会突然从安装过程转移到这个新应用程序中。而且,由于没有记录确切的时间ACTION_PACKAGE_ADDED
,您的里程可能会有所不同(例如,用户仍然有机会在广播进入您的应用程序之前点击打开)。