Android实时网络质量检测

Android实时质量检测

传送门:

github
csdn

原理

使用ping -n -i %f -c %d %s命令实现网络质量检测,具体参数如下:
-n count 发送 count 指定的 ECHO 数据包数。默认值为 4
-i 生存时间
-c 路由隔离仓标识符

如图ping后返回的最后一行可以看到min/avg/max/stddev,我们主要从avg来判断当前的网络质量
在这里插入图片描述

使用

1. 通过Ping.startSniffer方法开始调用,urls规则可以看Ping里面的getIp方法,从第7位开始到下一个":"截至,获取具体域名来ping

Ping.startSniffer("https://www.baidu.com:");

2. 在startSniffer中需要自己实现回调等方式把PingQuality.getQualityInt(s)获取的网络质量结果抛出

核心代码

使用ping命令获取返回的string,然后解析后获取到avg来判断网络质量。

private static PingResult pingCmd(String address, int count, int interval) {
        String ip = null;
        try {
            ip = getIp(address);
        } catch (UnknownHostException e) {
//            Log.e(TAG, "parseResult", e);
        }
        if (ip == null) {
            sleepTime = 2000;
            return new PingResult("", address, "", 0);
        } else {
            sleepTime = 200;
        }
        String cmd = String.format(Locale.US, "ping -n -i %f -c %d %s", ((double) interval / 1000), count, ip);
        Process process = null;
        StringBuilder str = new StringBuilder();
        BufferedReader reader = null;
        BufferedReader errorReader = null;
        try {
            process = Runtime.getRu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值