如何从下载的apk实现app自我更新?

时间:2017-09-11 12:15:47

标签: android ota

我正在使用该应用的OTA更新。它的工作原理如下:我点击“检查更新”,检查它,下载(如果存在)并在设备上保存apk。然后我可以安装它,但当然我有一个确认对话框。我需要默默地执行它并重新启动应用程序。

我想在下载完成后自动安装。所以我只需点击,如果有更新,应用程序将在新版本中重新启动。我无法弄清楚该怎么做。 该设备已植根

2 个答案:

答案 0 :(得分:2)

以下代码仅适用于已安装的设备!

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();
}

答案 1 :(得分:0)

出于安全原因,您无法拥有此功能。没有用户应用程序可以在非root用户手机上静默安装。

您唯一能做的就是告诉用户您刚刚下载了更新并询问是否要安装更新。如果是,则启动安装意图并让您的用户继续安装。