Android Runtime.getRuntime (). Exec () для навигации по каталогам

Поэтому я хочу написать приложение, которое может включать и отображать сообщения logcat, dmesg, а также иметь возможность запускать команды типа 'ls' 'cat' 'echo' 'cd.'

Если я сделаю следующее:

nativeProc = Runtime.getRuntime().exec("ls\n"); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(nativeProc.getOutputStream())); BufferedReader in = new BufferedReader(new InputStreamReader(nativeProc.getInputStream())); String line = null; while ((line = in.readLine()) != null) { full = full + "\n" + line; } 

Я могу поместить текст «полный» в текстовый вид и посмотреть корневую директорию.

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

Поэтому, если я это сделаю:

 nativeProc = Runtime.getRuntime().exec("ls\n"); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(nativeProc.getOutputStream())); BufferedReader in = new BufferedReader(new InputStreamReader(nativeProc.getInputStream())); String line = null; while ((line = in.readLine()) != null) { full = full + "\n" + line; } /* Code here to confirm the existing of a directory*/ nativeProc = Runtime.getRuntime().exec("cd tmp\n"); BufferedReader in2 = new BufferedReader(new InputStreamReader(nativeProc.getInputStream())); line = null; String test = "\nStart1:\n"; while ((line = in2.readLine()) != null) { test = test + "\n" + line; } 

Я ничего не получаю ни за «полный», ни «текст»,

Есть идеи?

Вы можете выполнить ls с предоставленным путем, для которого должны быть указаны папки

 Runtime.getRuntime().exec(new String[] { "ls", "\\tmp"}); 

Текущий рабочий каталог связан с текущим процессом. Когда вы выполняете («cd tmp»), вы создаете процесс, меняя его каталог на «tmp», а затем процесс завершается. Рабочий каталог родительского процесса не изменяется.

См. Это для более общей дискуссии об изменении текущего рабочего каталога в Java .

Как насчет написания файла оболочки, который проверяет наличие файла и всех других реализаций в этом файле и добавляет его на SD-карту и запускает файл оболочки из java с помощью getRuntimr.exec (), вы также можете передавать ему параметры.

Intereting Posts
Определить элементы переполнения панели действий Android: добавьте «внутренние» ссылки в часть TextView, которая ссылается на действие в моем коде Предпочтение при прослушивании изменений Как изменить язык приложения, когда пользователь выбирает язык? Использование RxJava для цепочки ряда операций – куда идти дальше? Android In-app billing Phonegg 1.0 Печать символов Unicode для Android TextView Изменение языка: принудительная активность для перезагрузки ресурсов? Как добавить параметры в сообщение для android http? Обработчик не может доставить сообщение или Runnable в основной поток Класс кинжала не может быть связан с ключом Ошибка при запуске приложения Android. Не удалось инициализировать эмуляцию OpenglES, используйте «-gpu off», чтобы отключить ее. Вернуть значение после метода Activity.runOnUiThread () Как я могу получить временные часовые пояса (андроид: настройки) Android – Неизвестный стиль атрибута на теге фрагмента