Android 以编程方式启用/禁用包

Android 以编程方式启用/禁用包,android,android-package-managers,Android,Android Package Managers,如何从Android系统应用程序以编程方式启用/禁用整个软件包 在post中,组件是以编程方式启用/禁用的,而不是整个包 我希望获得与root命令pm disable/enable package_name(从adb shell->su)相同的结果。有两种方法可以做到这一点: 使用pm disable命令: Runtime runtime = Runtime.getRuntime(); runtime.exec("pm disable "+packageName); 使用PackageMan

如何从Android系统应用程序以编程方式启用/禁用整个软件包

在post中,组件是以编程方式启用/禁用的,而不是整个包


我希望获得与root命令pm disable/enable package_name(从adb shell->su)相同的结果。

有两种方法可以做到这一点:

  • 使用pm disable命令:

    Runtime runtime = Runtime.getRuntime();
    runtime.exec("pm disable "+packageName);
    
  • 使用PackageManager api:

    public abstract void setApplicationEnabledSetting (String packageName, 
                                                       int newState, int flags)
    
  • 其中,在newState参数中,您可以传递“组件已启用状态已禁用”以禁用应用程序,传递“组件已启用状态已启用”以启用应用程序


    Ref:

    您可以尝试以编程方式运行相同的命令。它显然只能在根设备上工作。为什么需要根设备?您只需要一个系统特权应用程序。