Невозможно выполнить команды «удалить» или «ввод касания» из приложения - PullRequest
0 голосов
/ 30 сентября 2019

Мне нужно запустить некоторые команды в моем приложении, но некоторые из них не работают: команды удаления и ввода ввода.

Это команды, которые я пытался выполнить: - uninstall: pm uninstall -k - пользователь 0 com.mypackage - ввод ввода: ввод ввода xy

Эти 2 команды работают, когда я выполняю их на компьютере с помощью adb, но не всякий раз, когда они выполняются на самом устройстве.

Я попытался выполнить «pm list packages -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();
}

КогдаЯ выполняю 2 команды, я получаю ту же ошибку:

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)

Я полагаю, это проблема с разрешениями, но я не уверен. Я знаю, что, вероятно, не рекомендуется удалять подобные приложения или использовать сенсорный ввод, но есть ли способ сделать это?

...