首页 文章

从没有用户输入的rooted android安装apk(语法)

提问于
浏览
2

我从其他相关问题和他们的答案中了解到,在一个有根据的Android设备上,我们可以安装一个没有用户输入的apk,就像google play store可能正在做的那样 .

我已将我的设备植根并将我的应用程序安装在 /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);
}

以上实现将显示用户的安装提示 . 我希望在没有用户提示的情况下安装该应用 . 我怎样才能做到这一点?

1 回答

  • 1

    将此权限添加到Manifest:

    <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
        }
    

相关问题