2015-05-07 140 views
1

我需要一个机制,在没有任何用户交互的情况下应用程序自动更新自身。该应用程序是一个现成的应用程序(市场外)。 更新应该在后台进行,无需点击。 我们怎样才能做到这一点?自动更新Android应用程序

+0

如果“更新”正在修改src或res,那么你不能。这种更新基本上卸载了以前的版本并安装了当前版本。 – inmyth

+0

安装当前版本仍然会要求用户接受它。我不想用户交互。可能吗? – Harsh

+1

不,这是不可能的。用户必须提交他了解应用权限并同意安装它。 可以在根电话上这样做。你想如何将apk发送给用户手机? –

回答

1

这是不可能的,除了可能在根植设备或通过自己的自定义ROM。无需用户参与,应用程序无法安装或更新任何应用程序(他们自己的应用程序或其他应用程序)。

+0

如何可能在一个根深蒂固的手机上?有没有相同的代码? – Harsh

+0

能够通过su在根设备上使用adb命令自动更新应用程序。 – Harsh

+0

能够通过su在根设备上使用adb命令自动更新应用程序。 – Harsh

0

这是可能的,并且不需要扎根。你只需要有一个签名的apk,并在后台执行它。

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(new File(externalStorageDir, dir+ "APP.apk")),"application/vnd.android.package-archive"); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(intent); 

安装时会提示用户,因为我们应该通知应用程序的权限。

0

解决了这个问题。最终的解决方案是不能做到没有根深蒂固的手机。在固定电话上,我们可以运行adb脚本来执行此操作。在未联网的手机上,我们可以在后台下载apk并启动安装程序活动,要求用户点击一次以批准安装apk。