首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Android中以编程方式ping网站

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

Stack Overflow用户
提问于 2018-09-30 02:29:00
回答 1查看 3.6K关注 0票数 1

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

代码语言:javascript
复制
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();

    }

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

EN

回答 1

Stack Overflow用户

发布于 2018-09-30 02:43:35

我推荐使用这个库https://github.com/potterhsu/Pinger

Setup 1.在根build.gradle中:

代码语言:javascript
复制
allprojects {
  repositories {
    ...
    maven { url 'https://jitpack.io' }
  }
}

目标模块中的

  1. build.gradle dependencies { compile 'com.github.potterhsu:Pinger:v1.1' }

用法1.在同步中直接Ping:

代码语言:javascript
复制
Pinger pinger = new Pinger();
pinger.ping("8.8.8.8", 3);

  1. 在异步中Ping,直到成功:

代码语言:javascript
复制
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);

  1. Ping in异步直到失败:

代码语言:javascript
复制
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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52571339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档