解决方案 »

  1.   


    http://bbs.csdn.net/topics/390329421看一下这个帖子吧。。
      

  2.   

    不知道你想表达什么  你机器root了你的应用没有root权限啊
    不信你把执行su之后的inputstream输出看看
      

  3.   

    process = Runtime.getRuntime().exec("su\n");
      

  4.   

    确实没有考虑到这个问题,app获得的是systemUID,root权限要怎么获得呢..
      

  5.   

    我修改了下 :  不用加 "\n" 
    import java.io.BufferedReader;
    import java.io.DataOutputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;public class Demo { public static void main(String[] args) {
    execCommand("ping www.baidu.com");
    } public static void execCommand(String command) {
    Process process = null;
    DataOutputStream os = null;
    try {
    process = Runtime.getRuntime().exec(command); InputStream inputstream = process.getInputStream();
    InputStreamReader inputstreamreader = new InputStreamReader(
    inputstream);
    BufferedReader bufferedreader = new BufferedReader(
    inputstreamreader); os = new DataOutputStream(process.getOutputStream());
    // os.writeBytes(command+"\n");
    os.writeBytes("ls \n");
    os.writeBytes("exit\n");
    os.flush(); String line = ""; StringBuilder sb = new StringBuilder(line);
    while ((line = bufferedreader.readLine()) != null) {
    sb.append(line);
    System.out.println(line);
    sb.append('\n');
    }
    process.waitFor();
    } catch (Exception e) {
    } }
    }执行结果 : 
    PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
    64 bytes from 61.135.169.125: icmp_req=1 ttl=56 time=12.8 ms
    64 bytes from 61.135.169.125: icmp_req=2 ttl=56 time=157 ms
    64 bytes from 61.135.169.125: icmp_req=3 ttl=56 time=12.2 ms
    64 bytes from 61.135.169.125: icmp_req=4 ttl=56 time=12.6 ms
    64 bytes from 61.135.169.125: icmp_req=5 ttl=56 time=281 ms
    64 bytes from 61.135.169.125: icmp_req=6 ttl=56 time=972 ms
    64 bytes from 61.135.169.125: icmp_req=7 ttl=56 time=35.0 ms
    64 bytes from 61.135.169.125: icmp_req=8 ttl=56 time=59.5 ms
    64 bytes from 61.135.169.125: icmp_req=9 ttl=56 time=393 ms
    64 bytes from 61.135.169.125: icmp_req=10 ttl=56 time=138 ms
    64 bytes from 61.135.169.125: icmp_req=11 ttl=56 time=954 ms代码是没问题的  看看手机里面有没有你需要的这些命令
      

  6.   

    少个回车符么?我试一下
    加了回车符没有效果,在shell下手动执行su,确实看到没有返回success/fail,恐怕是su命令有问题
      

  7.   

    辛苦了,谢谢大哥,在shell下手动执行su,确实看到没有返回success/fail,恐怕是su命令有问题