【问题标题】:How to uninstall an Android app programmatically without user interaction?如何在没有用户交互的情况下以编程方式卸载 Android 应用程序?
【发布时间】:2018-10-09 06:22:59
【问题描述】:

我正在开发一个家长控制安卓应用,它能够卸载安装在手机上的安卓应用。我参考了问题的答案install / uninstall APKs programmatically (PackageManager vs Intents)

我使用以下代码卸载特定应用程序。

Intent intent = new Intent(Intent.ACTION_DELETE); intent.setData(Uri.parse("package:com.example.tharindurasanga.locationtracker")); startActivity(intent);

这段代码运行良好,但没有达到我的预期,因为这会导致提示用户确认应用程序卸载。我需要在没有用户确认的情况下静默卸载应用程序。

有人可以建议我另一种执行此操作的方法或帮助我删除此提示。注意:我的设备也有root权限

【问题讨论】:

标签: java android


【解决方案1】:

有根设备

上试试这个方法
    try{
    Process su = Runtime.getRuntime().exec("su");
    DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());

    outputStream.writeBytes("pm uninstall package_name\n");
    outputStream.flush();

    outputStream.writeBytes("exit\n");
    outputStream.flush();
    su.waitFor();
}catch(IOException e){
    throw new Exception(e);
}catch(InterruptedException e){
    throw new Exception(e);
}

【讨论】:

    【解决方案2】:

    第 3 方应用无法执行此操作,因为此权限仅适用于系统应用。 JavaReflection 也没有此功能。

    参考:Accepted Answer

    【讨论】:

    • 有什么方法可用于root设备吗?
    • 不。用户界面将在那里。
    猜你喜欢
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2015-08-24
    • 2012-07-24
    • 1970-01-01
    • 2015-05-03
    相关资源
    最近更新 更多