【问题标题】:detect slow internet connection in android检测android中的慢速互联网连接
【发布时间】:2015-09-04 09:10:11
【问题描述】:

我开发了 Android 应用程序,它在使用 WiFi 时运行良好。 当有适当的蜂窝网络时,它也可以工作。 但问题是当信号很弱(仍然处于活动状态)时就会出现问题。

在数据被加载到 Activity 之前,我一直使用加载器。 现在如何确定互联网连接速度慢,因为我必须向用户提供一些信息,即互联网连接速度很慢。 有人可以帮忙吗?

【问题讨论】:

标签: android eclipse


【解决方案1】:

您可以使用TrafficStatsandroid.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); 

【讨论】:

  • 感谢 arjun 的回复...但是如何使用它,即我使用此代码中的什么参数来确定慢速互联网连接。我正在使用 http 请求响应,那么关系是什么?
  • transferRate 以 kbps 为单位给出链接速度,您可以从中确定慢速连接
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 2014-10-08
    • 2021-04-12
    • 2012-01-17
    • 2020-09-19
    • 2011-04-01
    相关资源
    最近更新 更多