Android应用可以自动升级吗?

时间:2015-07-23 08:02:15

标签: android

我的Android应用运行的设备上没有Playstore。计划是在运送设备时预安装软件。我现在正在寻找升级应用程序的策略。

我发现这个有用的链接可以从apk文件中安装Android应用程序:

Android: install .apk programmatically

我想我会用这个逻辑自动升级我的应用程序。我想知道它是否有可能。我认为升级将首先尝试卸载现有版本,但会因为可执行文件仍在运行而失败,文件可能会被锁定。有没有更好的办法?问候。

4 个答案:

答案 0 :(得分:3)

彼得,我们刚刚实施了同样的事情。

用户已将软件预先安装在他们的设备上,我们会在公司服务器上托管更新APK。

然后,从应用程序中,他们可以检查我们有WCF服务的更新,该服务提取APK文件(基本上是.zip)并返回清单详细信息。从那里我们有APK的版本,可以将它与本地版本进行比较。

如果用户决定升级,他们可以下载APK,您可以自动启动它。此时将告知用户应用程序将被更新。没有文件锁等,应用程序将关闭并使用新版本重新启动。

注意:降级不是"自动"。用户必须先卸载该应用程序。但是,对于升级,这是一个简单的下载和启动APK版本的情况(如果没有检查,用户将被告知他们需要允许来自未知来源的安装。)

答案 1 :(得分:0)

您有几种选择,具体取决于您的目标系统。

  1. 使用您发布的链接。这将为用户提供传统的安装对话框,用户可以选择是否安装。你应该避免自动这样做,因为APK可能很大,如果他们不想要更新,你可能会激怒用户。

  2. 您可以神奇地安装更新,但是您需要固件签名密钥(或者可能是root用户,但我还没有对其进行测试)。这不会要求用户同意。您需要使用反射添加其他代码才能访问Android的安装方法。如果你这样做,你应该建立一个选择退出/进入机制。

答案 2 :(得分:0)

如果您的应用是开源的,F-Droid可以为您解决问题。

  

F-Droid是一个可安装的FOSS目录(免费和开源   软件)Android平台的应用程序。客户做到了   易于浏览,安装和跟踪设备上的更新。

主要是,它会在必要时更新您的应用。 (或者只是看一下它的source code,了解如何做到这一点。)

答案 3 :(得分:0)

是的,但据我所记得,只有您具有Root特权才能访问INSTALL_PACKAGES权限。