2015-12-17 33 views
2

我试图使用/系统/斌/ ping命令在Android上ping通我的网络上的设备。出于某种原因,它会返回我尝试每次ping的退出代码2。 我已经试过:www.google.com,192.168.2.1(路由器本地IP),目前每一个可能的IP为子网上的设备......但它始终返回2.这是我的代码。Android java/system/bin/ping总是返回exitCode 2,为什么?

的onCreate

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     try { 
      String subnet = "192.168.2"; 
      for (int i = 0; i <= 255; i++) { 
       String node = subnet + "." + i; 
       System.out.println(pingHost(node)); 
      } 

     } catch (InterruptedException | IOException e) { 
      e.printStackTrace(); 
     } 

    } 

pingHost()

public static int pingHost(String host) throws IOException, InterruptedException { 
     String cmd = "/system/bin/ping -c 1 -W 1000 " + host; 
     Process proc = Runtime.getRuntime().exec(cmd); 
     proc.waitFor(); 
     return proc.exitValue(); 
    } 

我一直有和没有超时......仍然是打印的唯一出口代码试图为2

任何想法?

+0

我已经与我的三星Galaxy S2测试这个...如果这意味着什么。 –

+2

你为什么不打印错误流和输出流,并检查它是否给出了一个错误可读的消息... – Codebender

+0

我会尽力,一旦我回到我的电脑。谢谢:) –

回答

1

我打印出来的错误流,它告诉我,我需要INTERNET权限使用Ping。我将INTERNET权限添加到我的清单中,并且瞧!

谢谢Codebender您的建议!

相关问题