Эквивалентная версия команды ADB в Java? - PullRequest
0 голосов
/ 04 июня 2018

Я могу выполнить команду оболочки adb типа из терминала:

./adb shell 'sh -c "param1 param2 param3 param4"'

Однако, когда я пытаюсь запустить это внутри приложения для Android, используя Runtime.exec,Приведенная выше команда разбивается на различные параметры вида

[adb, shell, 'sh, -c, "param1, param2, param3, param4"]

Однако это единственный входной параметр при запуске из оболочки.Как запустить это в приложении?

примечание: параметр - это своего рода путь, например /a/b/c/

1 Ответ

0 голосов
/ 04 июня 2018

Чтобы не допустить смешного разделения строк, обычно безопаснее использовать многопараметрическую версию Runtime.exec :

System.getRuntime().exec("adb", "shell", "sh -c \"param1 param2 param3 param4\"");

Обратите внимание, что в этом конкретном вызовеу вас есть 2 аргумента для adb исполняемого файла.shell и вся команда, которая будет проанализирована оболочкой на устройстве Android.Вся команда всегда должна входить в отдельный аргумент, как показано выше.

...