Android,运行时执行删除包

Android, runtime exec removing package

val newInput = "pm uninstall --user 0 $input"
val process = Runtime.getRuntime().exec(newInput)
process.waitFor()

'input' 是要删除的包名。我签署了应用程序,使其成为系统应用程序。当我尝试 运行 此代码时,我得到:

2020-12-23 11:39:18.313 19993-19993/? E/cutils-trace: Error opening trace file: Permission denied (13) 2020-12-23 11:39:18.489 19993-19993/? E/memtrack: Couldn't load memtrack module (No such file or directory) 2020-12-23 11:39:18.489 19993-19993/? E/android.os.Debug: failed to load memtrack module: -2

如何在获得许可的情况下从另一个应用程序中删除一个应用程序?

对于其他应用程序的删除,您必须获得用户的批准。您可以使用 intent 执行此过程。

    Uri packageURI = Uri.parse("package:"+"some.package.to.remove");
    Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
    startActivity(uninstallIntent);