我正在使用应用程序的OTA更新。它是这样工作的:我点击“检查更新”,它检查它,下载如果存在,并将apk保存在设备上。然后我可以安装它,但当然我有一个确认对话框。我需要静静地做,并重新启动应用程序。如何从已下载的apk实现应用程序自更新?
我想让它在下载完成时自动安装。所以我只需点击一下,如果有更新,应用程序将在新版本中重新启动。我无法弄清楚如何去做。 设备根源为。
我正在使用应用程序的OTA更新。它是这样工作的:我点击“检查更新”,它检查它,下载如果存在,并将apk保存在设备上。然后我可以安装它,但当然我有一个确认对话框。我需要静静地做,并重新启动应用程序。如何从已下载的apk实现应用程序自更新?
我想让它在下载完成时自动安装。所以我只需点击一下,如果有更新,应用程序将在新版本中重新启动。我无法弄清楚如何去做。 设备根源为。
以下代码仅适用于roodted设备!
private int installApk(File file) {
if (!file.exists()) throw new IllegalArgumentException();
Process process = null;
try {
process = Runtime.getRuntime().exec(new String[]{"su", "-c", "pm install -r " + file
.getAbsolutePath()});
int exitCode = process.waitFor();
if (exitCode != 0) throw new RuntimeException();
} catch (IOException | InterruptedException exception) {
Log.w(getClass().getSimpleName(), exception);
}
return (process == null) ? Integer.MIN_VALUE : process.exitValue();
}
你出于安全原因不能有这个。没有用户应用程序可以静默安装在非固定电话上。
你唯一能做的就是告诉用户你刚刚下载了更新并询问他/他是否想安装它。如果是这样,那么防火安装意图,让你的用户继续安装。