以编程方式在后台安装APK

时间:2015-09-16 10:28:07

标签: android android-install-apk

我有一个场景,我必须在后台下载apk并安装它 没有提示任何用户对话框。但是当我尝试使用下面的代码安装它时

File file = new File(filename);
if(file.exists()){
    try {
        String command;
        command = "pm install -r " + filename;
        Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", command });
        proc.waitFor();
        Config.debug("Apk installed");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

要求超级用户访问。有没有办法在没有超级用户的情况下安装apk并提示给用户?

3 个答案:

答案 0 :(得分:2)

  

有没有办法在没有超级用户的情况下安装apk并提示给用户?

幸运的是,没有,出于明显的安全原因。

更新:Android 5.0+设备有一个例外,如果您使用的是设备所有者系统,我认为有一些API可用于安装设备所有者应用可用的软件包。我还没有玩过这些,目前还不清楚它们是否能满足你的需求。

  

我问这个becoz我拥有的用户群,之前从未使用过应用程序或设备

然后要么不给他们这项技术,要么教他们如何使用这项技术。

答案 1 :(得分:1)

您可以从Android Marshmallow静默安装应用程序(查找信息here)。您必须是设备所有者才能完成任务。

您可以找到有关设备所有者here的更多帮助。感谢Florent Dupont。

答案 2 :(得分:0)

是的,您可以通过使用系统签名对应用程序进行签名来静默安装apk而无需生根。