无法从应用程序执行“卸载”或“输入点击”命令

时间:2019-09-30 09:40:17

标签: android permissions adb

我需要在我的应用程序中运行一些命令,但是其中一些命令不起作用:卸载和输入Tap命令。

这些是我尝试执行的命令: -卸载:pm卸载-k --user 0 com.mypackage -输入水龙头:输入水龙头x y

这2条命令在我使用adb在计算机上执行它们时起作用,但是无论何时在设备本身上执行它们都不起作用。

我试图在设备上执行“ pm list package -f”,并且可以正常工作。

这基本上是我用来执行命令的代码:

try {
    Process process = Runtime.getRuntime().exec(commandEditText.getText().toString());
    InputStream iStream = process.getInputStream();
    InputStream errorStream = process.getErrorStream();

    tryWriteProcessOutput(iStream, resultString);
    tryWriteProcessOutput(errorStream, resultString);
} catch (IOException e) {
    e.printStackTrace();
}

当我执行这两个命令时,会出现相同的错误:

Exception occurred while executing:
java.lang.NullPointerException
    at com.android.internal.util.Preconditions.checkNotNull(Preconditions.java:111)
    at com.android.server.AppOpsService.checkPackage(AppOpsService.java:1104)
    at android.app.AppOpsManager.checkPackage(AppOpsManager.java:1866)
    at com.android.server.pm.PackageInstallerService.uninstall(PackageInstallerService.java:982)
    at com.android.server.pm.PackageManagerShellCommand.runUninstall(PackageManagerShellCommand.java:912)
    at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:134)
    at android.os.ShellCommand.exec(ShellCommand.java:96)
    at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:28774)
    at android.os.Binder.shellCommand(Binder.java:581)
    at android.os.Binder.onTransact(Binder.java:481)
    at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:3209)
    at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:5107)
    at android.os.Binder.execTransact(Binder.java:682)

我想这是一个权限问题,但不确定。 我知道可能不建议您卸载类似的应用程序或强制触摸输入,但是有办法吗?

0 个答案:

没有答案