【问题标题】:How to automatically launch the Android installer after downloading the apk?下载apk后如何自动启动Android安装程序?
【发布时间】:2023-11-12 17:30:01
【问题描述】:

当您从 Google Market 安装应用程序时,您会看到一个安装按钮,该按钮会下载并自动启动您刚刚下载的 apk 的安装程序。它不会自动安装它,只会自动启动您刚刚下载的 apk 的安装程序。

如果您的本地服务器上有一个 apk 文件,是否可以有类似的按钮?链接的外观如何?

我在这里读过很多几乎类似的问题(比如这个 How to install APK automatically when the file download is complete (hosted on private)how to automatically install an apk),但没有一个答案能解释谷歌是否为其市场使用了特殊的东西,或者是否可以使用一种特殊的链接来强制手机中的安装程序在下载后自动启动?自动启动,而不是自动安装 apk。

即当用户使用二维码阅读器扫描我的二维码或直接在浏览器中输入网址时,我的应用程序如何在下载后立即触发安装程序?

假设我做了以下事情: 1. 我在我的电脑上生成一个私钥 2. 我用我的私钥签署我的应用程序 3. 我将我的应用提交到 Google 市场 4. 我将我的应用上传到我的网站。

当有人从 Google Market 下载我的应用时,会发生以下情况: a) 该人将访问我的应用的 Google Market URL b) 他会把它下载到他的手机上 c) 手机中的应用安装程序会自动启动,并询问他是否同意应用所需的权限。

当有人从我的网站下载我的应用时,会发生以下情况: a) 该人将访问我的应用的 Google Market URL b) 他会把它下载到他的手机上 c) 手机中的应用程序安装程序不会自动启动。

我不希望应用程序在没有用户干预的情况下安装,只是为了让安装过程在下载后自动启动。

我的问题是如何让 c) 发生,即使他下载了相同的应用程序,使用相同的签名进行签名,但来自我的网站?

【问题讨论】:

  • 您找到解决方案了吗?

标签: android


【解决方案1】:

简单的答案是:你不能(至少如果我没记错的话)。

AOSP 包含一组 Google 的公钥,他们用这些公钥签署他们的应用程序。并且为了能够在没有用户干预的情况下安装应用程序,必须使用匹配的私钥对 apk 进行签名。因此,为了做到这一点,您必须做以下两件事之一:

  1. 获取 google 的私钥并用它签署您的 apk。
  2. 让每个人都升级他们的手机,以便将您的公钥与 Google 的公钥放在一起。

这些都不可能。所以基本上,你不能。除非你的目标是 root/rom 社区。然后,您也许可以说服他们执行 #2(将您添加到无需干预即可安装应用程序的密钥列表中)。

【讨论】:

  • 感谢您的回答。我更新了关于“apk 必须使用匹配的私钥签名”的问题。