2011-01-06 37 views
6

Vì vậy, tôi muốn có thể viết một ứng dụng có thể bật và hiển thị các tin nhắn logcat, dmesg và cũng có thể chạy các lệnh như 'ls' ' cat '' echo '' cd. 'Android Runtime.getRuntime(). Exec() để điều hướng qua các thư mục

Nếu tôi làm như sau:

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

tôi có thể đưa văn bản "đầy đủ" tới Lưu và xem thư mục gốc.

Tuy nhiên, đó là tất cả những gì tôi có thể làm. Hãy nói rằng tôi muốn tìm một thư mục, và thay đổi nó, tôi đang gặp rắc rối.

Vì vậy, nếu tôi làm điều này:

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

Tôi nhận được gì cho cả hai "đầy đủ" và "văn bản"

ý tưởng Bất kỳ?

Trả lời

4

Bạn có thể thực hiện ls với con đường cung cấp cho những thư mục sẽ được liệt kê

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

Thư mục hoạt động hiện tại được liên kết với quy trình hiện tại. Khi bạn exec ("cd tmp") bạn đang tạo một quá trình, thay đổi thư mục của nó thành "tmp", và sau đó quá trình thoát. Quá trình cha mẹ 'thư mục làm việc không thay đổi.

Xem phần này để có một cuộc thảo luận chung hơn về changing the current working directory in Java.

1

Cách viết tệp shell kiểm tra sự tồn tại của tệp và tất cả các tệp thực thi khác trong tệp này và thêm nó vào sdcard và kích hoạt tệp shell từ java bằng cách sử dụng getRuntimr.exec(). .

Các vấn đề liên quan