如何在Android中使用接口名称执行ping命令(例如:wlan0)?

时间:2016-11-28 14:09:08

标签: android linux

我正在开发一个Android应用程序,我需要使用带有接口名称的ping命令。没有接口的.Ping命令工作正常但是如果我指定接口名称ping不起作用。接口名称的接口工作在Linux终端没有root权限

我正在尝试下面的命令

pingCommand = "ping -I wlan0 192.168.230.2"; //Does not work
proc = runtime.exec(pingCommand);

pingCommand = "ping 192.168.230.2"; //This does work
proc = runtime.exec(pingCommand);

请分享一些解决此问题的方法。

3 个答案:

答案 0 :(得分:0)

你能发布你得到的错误信息,以下是适用于ubuntu的示例代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class RuntimeDemo {
    public static void main(String args[]) {
        String s;
        Process p;
        try {
            p = Runtime.getRuntime().exec("ping -I wlan0 192.168.1.119");
            BufferedReader br = new BufferedReader(
                new InputStreamReader(p.getInputStream()));
            while ((s = br.readLine()) != null)
                System.out.println("line: " + s);
            p.waitFor();
            System.out.println ("exit: " + p.exitValue());
            p.destroy();
        } catch (Exception e) {}
    }
}

答案 1 :(得分:0)

我在Android中使用界面进行了一些关于ping的实验,我得出了以下结论。

1)使用特定接口(例如:wlan0)进行Ping需要ROOT权限。 但是一个指定的手机“ HUAWEI NXT-AL 10(Android 6.0)”,我可以在没有ROOT权限的情况下使用接口(wlan0)进行ping。

2)对于其他手机(尝试使用Moto G,Micoromax android one),如果root已启用,则允许使用ping,否则不允许。

答案 2 :(得分:0)

问题是在Android中命令是 “/system/bin/ping my_url_or_ip”这就是你找不到它的原因。