-1

I want a uninstall an app without poping the "Do you want to uninstall this app?" dialog.

I have tried using

try {
        Runtime.getRuntime().exec("pm uninstall --user 0 packageName")
    }catch (e : Exception){
        e.printStackTrace()        
    }

Getting the below error

Exception occurred while dumping:
    java.lang.NullPointerException
        at com.android.internal.util.Preconditions.checkNotNull(Preconditions.java:94)
        at com.android.server.AppOpsService.checkPackage(AppOpsService.java:974)
        at android.app.AppOpsManager.checkPackage(AppOpsManager.java:1656)
        at com.android.server.pm.PackageInstallerService.uninstall(PackageInstallerService.java:874)
        at com.android.server.pm.PackageManagerShellCommand.runUninstall(PackageManagerShellCommand.java:792)
        at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:118)
        at android.os.ShellCommand.exec(ShellCommand.java:94)
        at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:18695)
        at android.os.Binder.shellCommand(Binder.java:468)
        at android.os.Binder.onTransact(Binder.java:367)
        at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2408)
        at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3083)
        at android.os.Binder.execTransact(Binder.java:565)

Note: INTERACT_ACROSS_USERS_FULL permission is added in the AndroidManifest file and also the app is signed as a system app

1 Answers1

1

This is not currently available to third party applications. Note that even using reflection or other tricks to access installPackage() will not help, because only system applications can use it. (This is because it is the low-level install mechanism, after the permissions have been approved by the user, so it is not safe for regular applications to have access to.)

Also the installPackage() function arguments have often changed between platform releases, so anything you do trying access it will fail on various other versions of the platform.

However for uninstalling an app using ADB command line you can use

adb uninstall <package_name>

You can refer the below link to another similar thread.

install / uninstall APKs programmatically (PackageManager vs Intents)

Lino
  • 5,084
  • 3
  • 21
  • 39
Aakash Shukla
  • 31
  • 1
  • 4