我开发了Android应用程序,使用WiFi时工作正常。 当有适当的蜂窝网络时它也可以工作。 但问题是当信号很弱(仍然有效连接)时就会出现问题。
我使用了一个加载器,直到在Activity上加载数据。 现在如何确定慢速互联网连接,因为我必须向用户提供互联网连接缓慢的一些Toast信息。 任何人都可以帮忙解决这个问题吗?
答案 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 并停止花费时间。因此,您可以设置文件需要下载的最长时间,如果超过此最大值,则客户端的连接速度太慢。