2015-12-17 74 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您的建議!