Question

So I want to be able to write an app that can turn on and display logcat messages, dmesg, and also be able to run commands like 'ls' 'cat' 'echo' 'cd.'

If I do the following:

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;
        }

I can put the text "full" to a Text View and see the root directory.

However, that's about all I can do. Let's say I want to find a directory, and change to it, I'm having trouble.

So if I do this:

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;
        }

I get nothing for both "full" and "text"

Any ideas?

Was it helpful?

Solution

You can execute ls with provided path for which folders should be listed

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

OTHER TIPS

The current working directory is associated with the current process. When you exec("cd tmp") you are creating a process, changing its directory to "tmp", and then the process exits. The parent process' working directory doesn't change.

See this for a more general discussion of changing the current working directory in Java.

How about writing a shell file which checks for existence of the file and all other implementaion in this file and added it to sdcard and trigger the shell file from java using getRuntimr.exec().you can also pass parameters to it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top