我需要在我的应用程序中运行一些命令,但是其中一些命令不起作用:卸载和输入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)
我想这是一个权限问题,但不确定。 我知道可能不建议您卸载类似的应用程序或强制触摸输入,但是有办法吗?