背景:我有一个需要使用其他应用程序中的意图的应用程序。如果需要此意图时未安装该其他应用程序,我想提供它进行下载和安装。
问题:如果下载的应用程序在安装后立即(由用户)打开,我将需要它来打开第一个应用程序所需的特定意图,而不是像往常一样打开它。参见下图。
我有哪些可用选项,是否有通用的模式?提前致谢。
最佳答案
如果下载的应用程序在安装后立即(由用户)打开,我将需要它来打开第一个应用程序所需的特定意图,而不是像往常一样打开它。
严格来讲,这是不可能的。没有什么可以阻止用户按“打开”,这将像正常情况一样-您无法更改此设置。
如果您是“ Monkey Trampoline”应用程序的作者,则可以找出各种技巧,以识别它是从“ Animal Olympics”安装后打开的,因此可以相应地路由其逻辑(使用自定义粘性广播,让第二个应用程序使用一些IPC来询问第一个应用程序“是,我是否应该做一些特别的事情?”,等等)。
还可以想象ACTION_PACKAGE_ADDED
将在用户单击“完成”或“打开”(或“主页”或“后退”或任何其他内容)之前广播。在这种情况下,您可以收听该广播,确定确实刚刚安装的应用确实涉及猿筋斗,然后调用startActivity()
。对于用户而言,这会有点震撼,因为突然之间,他们会从安装过程中被转移到这个新应用中。而且,由于未记录ACTION_PACKAGE_ADDED
的确切时间,因此您的里程可能会有所不同(例如,在广播进入您的应用之前,用户仍然有机会点击“打开”)。