2014-03-02 29 views
8

我的朋友的应用程序将预装在约60,000台Android设备上。我们希望设备在我们的网站上可用时下载并安装更新版本的应用程序(我们将发布.apk文件)。无人值守远程Android应用程序更新?

该应用程序不会在市场上发布。这是一个内部的商业应用程序。

我查找了类似的问题,发现2009年的https://stackoverflow.com/a/1662032和2010年的https://stackoverflow.com/a/4264819,推荐使用新版本的应用程序发布新的固件。这仍然是2014年的最佳选择吗?我们正在寻找一款完全无人看管的全自动软件更新,尽可能缩短停机时间。

我正在探索使用CFEngine,因为我熟悉CFEngine并且动态重新配置在其权限和能力范围内,但我也在检查Android“原生”解决方案。

https://stackoverflow.com/a/2585448描述了下载APK,但下一步需要人工交互才能点击下载管理器中的APK进行安装。我们正在寻找完全无人值守的安装。我也遇到过GCM(http://developer.android.com/google/gcm/index.html),但我们的设备将在内部网络上,位于防火墙后面,这就是为什么我们希望他们下载更新,而不是我们推动更新(我认为GCM将促进更新它允许一个结构向设备发送消息)。

我们无法通过推送到达设备,但它们可以从我们的网络服务器上取消。

最有希望的答案似乎是https://stackoverflow.com/a/12274740/3371843,它描述了如何以编程方式下载和安装APK,但除了通过Google Play完成之外,它仍然需要用户与安全性进行交互?我们不会在Google Play上。

随着Android的不断发展以及Android业务的采用,我相信这个问题会出现给其他人。希望你能提供任何帮助。

+1

假设人们可以在没有任何用户干预的情况下更新/安装应用程序,我认为这将是一场大灾难。假设新的更新需要新的权限,你不认为用户想知道你的应用程序现在是否想要访问他/她的联系人/短信等?你不认为应该给用户一个选择,他/她是否想要授予权限吗? –

+2

@atsaloli:我听到你的声音。我们有没有任何真正的最终用户运行24h/7d kioskapp的确切问题。没有鼠标,没有触摸屏访问,只有HDMI输出。这是一个有效的Android使用案例,有些人只看到个人平板电脑+手机使用案例。应用程序仍应可更新,并且无需任何用户交互。如果拥有根设备,root权限就足够了。这是我试图找到。我们无法每次都通过一些不起眼的中国设备提供商安装新的/系统/应用程序。 – Whome

回答

1

我们正在寻找一款完全无人看管的全自动软件更新,尽可能缩短停机时间。

这是普通SDK应用程序无法实现的。升级应用程序需要用户干预。

固件制造商可以提供应用程序的自动更新,这是Play Store配备的固件为不添加新权限的Play商店应用程序执行的方式。

这就是为什么我们希望他们拉下更新,而不是我们推更新他们(我认为GCM将促进,因为它允许织物将消息发送到设备)

除非你以JSON编码时,APK文件小于4K,因此GCM不会有太大的用处,除非作为触发机制来指示可以下载某些内容。

+0

如果固件制造商给我们提供root权限,我们授予myapp.apk具有root权限,并已预装它。应用程序可以从网络服务器将myapp.apk下载到临时文件夹。它仍然是一个炫耀者吗?我们无法像没有任何用户交互的shellexec一样指导PackageManager或“adb.exe push ...”?我们有一个kioskapp没有真正的用户,没有GooglePlay的基础。仍然应用程序应该是可更新的。 Android是一个showstopper? – Whome

1

你有没有得到任何解决方案? 我面临着同样的问题与我的应用程序(静默更新),我找到了解决默默检查更新版本和下载默默地,通过以下库:

https://github.com/RaghavSood/AppaholicsUpdateChecker

这是接近,但仍要求提供用户权限在升级之前。我希望通过传递用户权限来看到一个(无根)的解决方案。