Java 如何在Android中以编程方式ping网站

Java 如何在Android中以编程方式ping网站,java,android,ping,Java,Android,Ping,我正在尝试制作一个应用程序,可以获取网站或ip地址的ping,并在文本视图中显示ping号码,我使用以下代码获取ping: public void fExecutarPing(View view){ Editable host = edtIP.getText(); try { String cmdPing = "ping -c 1 -w 1 "+host; Runtime r = Runtime.getRuntime();

我正在尝试制作一个应用程序,可以获取网站或ip地址的ping,并在文本视图中显示ping号码,我使用以下代码获取ping:

public void fExecutarPing(View view){
        Editable host = edtIP.getText();


    try {
        String cmdPing = "ping -c 1 -w 1 "+host;
        Runtime r = Runtime.getRuntime();
        Process p = r.exec(cmdPing);
        BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream()));
        String inputLinhe;


        while((inputLinhe = in.readLine())!= null){

            Toast.makeText(this, inputLinhe, Toast.LENGTH_SHORT).show();

        }


    } catch (Exception e) {
        Toast.makeText(this, "Error: "+e.getMessage().toString(), Toast.LENGTH_SHORT).show();

    }

这段代码只会给我多个toast消息,就像在windows命令中ping一样,但我如何才能获得ping编号例如:85

我建议使用此库

设置 1.在root build.gradle中:

allprojects {
  repositories {
    ...
    maven { url 'https://jitpack.io' }
  }
}
  • 在目标模块build.gradle中
    
    依赖关系{
    编译'com.github.potterhsu:Pinger:v1.1'
    }
  • 用法 1.直接同步Ping:

    Pinger pinger = new Pinger();
    pinger.ping("8.8.8.8", 3);
    
    二,。在异步中Ping,直到成功:

    Pinger pinger = new Pinger();
    pinger.setOnPingListener(new Pinger.OnPingListener() {
        @Override
        public void onPingSuccess() { ... }
    
        @Override
        public void onPingFailure() { ... }
    
        @Override
        public void onPingFinish() { ... }
    });
    pinger.pingUntilSucceeded("8.8.8.8", 5000);
    
    三,。在异步中Ping,直到失败:

    Pinger pinger = new Pinger();
    pinger.setOnPingListener(new Pinger.OnPingListener() {
        @Override
        public void onPingSuccess() { ... }
    
        @Override
        public void onPingFailure() { ... }
    
        @Override
        public void onPingFinish() { ... }
    });
    pinger.pingUntilFailed("8.8.8.8", 5000);