检测android中的慢速互联网连接

时间:2015-09-04 09:10:12

标签: android eclipse

我开发了Android应用程序,使用WiFi时工作正常。 当有适当的蜂窝网络时它也可以工作。 但问题是当信号很弱(仍然有效连接)时就会出现问题。

我使用了一个加载器,直到在Activity上加载数据。 现在如何确定慢速互联网连接,因为我必须向用户提供互联网连接缓慢的一些Toast信息。 任何人都可以帮忙解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

您可以使用TrafficStats android.net个套件获取从您的应用传输的总数据量。然后,您可以检测每秒传输的数据量,从而提供网络链接的速度

    trafficStats = new TrafficStats();
    uid = android.os.Process.myUid();
    if(trafficStats.getUidRxBytes(uid) != trafficStats.UNSUPPORTED) {
        initialBytesCount = trafficStats.getUidTxBytes(uid) / 1024;
    } else{
        uid = -1;
    }

    startTime = System.currentTimeMillis();
    TimerTask task = new TimerTask() {
        @Override
        public void run() {
            linkSpeed = trafficStats.getUidTxBytes(uid) / 1024 - initialBytesCount;
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    transferRate = 0;
                    long recordedTime = (System.currentTimeMillis() - startTime) / 1000;
                    try {
                        transferRate = linkSpeed / recordedTime;
                        Log.i("TransferRate", transferRate + "");
                    }catch (Exception e){

                    }
                }
            });
        }
    };
    netWorkSpeedTimer = new Timer();
    netWorkSpeedTimer.scheduleAtFixedRate(task, 1000, 1000); 

答案 1 :(得分:0)

如果用户具有稳定的连接,并且您只是想测试连接是否因为您的目的而变慢,则可以通过从服务器下载测试文件来实现简单的speedtest 并停止花费时间。因此,您可以设置文件需要下载的最长时间,如果超过此最大值,则客户端的连接速度太慢。