android - 从 root Android 安装 apk,无需用户输入(语法上)

标签 android root

从其他相关问题及其答案中我了解到,在已 root 的 Android 设备上,我们可以在没有用户输入的情况下安装 apk,就像 Google Play 商店可能会做的那样。

我已对设备进行 root 操作,并将应用程序安装在 /system/app 文件夹中。它现在显示为系统应用程序。这是我用来安装下载的 apk 文件的代码

private void install(UpdateRequest req, Uri apk) {
    Intent i;
    Log.e("INSTALL PROCESS ", " " + apk.toString());
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        i = new Intent(Intent.ACTION_INSTALL_PACKAGE);
        i.putExtra(Intent.EXTRA_ALLOW_REPLACE, true);
    } else {
        i = new Intent(Intent.ACTION_VIEW);
    }
    i.setDataAndType(apk, "application/vnd.android.package-archive");
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    startActivity(i);
}

上述实现将为用户显示安装提示。我希望在没有用户提示的情况下安装该应用程序。我怎样才能实现这一目标?

最佳答案

将此权限添加到 list 中:

<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>

然后执行:

 try {   
        String adbCommand = "adb install -r " + fileName;
        String[] commands = new String[]{"su", "-c", adbCommand};
        Process process = Runtime.getRuntime().exec(commands);
        process.waitFor();
    } catch (Exception e) {
        //Handle Exception
    }

关于android - 从 root Android 安装 apk,无需用户输入(语法上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33063311/

相关文章:

java - 开始另一个 Activity 时不破坏主要 Activity

Android:本地服务可以独立于应用程序被操作系统杀死吗?

android - 使用intellij开发Android应用程序

mysql - 无法在 ubuntu 16 上使用 --skip-grant-tables 重置 root 密码

java - 实体参数不能被Root的get方法使用

java - 如何从广播接收器调用 GetAppContext?

linux - SSH 作为用户允许在 Linux 中进行临时 root 访问

android - 我可以要求 Zygote 以 root 身份运行我的应用程序吗?

azure - Azure Bitnami 中的 tomcat 或 root 密码

android - 在 Android 4.1.x 上取消 ActionBar 溢出菜单时发出警告