相信大家在开发过程中经常需要为用户显示网速吧,不着急,咋们一步一步集成
1、计算网速函数
将该函数写到工具类里
/**
* 得到网络速度
* @param context
* @return
*/
public static String getNetSpeed(Context context) {
String netSpeed = "0 kb/s";
long nowTotalRxBytes = TrafficStats.getUidRxBytes(context.getApplicationInfo().uid)==TrafficStats.UNSUPPORTED ? 0 :(TrafficStats.getTotalRxBytes()/1024);//转为KB;
long nowTimeStamp = System.currentTimeMillis();
long speed = ((nowTotalRxBytes - lastTotalRxBytes) * 1000 / (nowTimeStamp - lastTimeStamp));//毫秒转换
lastTimeStamp = nowTimeStamp;
lastTotalRxBytes = nowTotalRxBytes;
netSpeed = String.valueOf(speed) + " kb/s";
return netSpeed;
}
- 1
2、
在textview中显示网速
在handler中刷新
//展示网速
case SHOW_SPEED:
//1、拿到网络速度
String netSpeed = CommonUtils.getNetSpeed(VideoPlayerActivity.this);
//2、设置TextView进行显示
mLlBufferTv.setText("玩命加载中..."+netSpeed);
//3、每两秒刷新一次
//这样写比较消耗性能,看视频我关注网速干毛啊,写到卡顿里
mHandler.removeMessages(SHOW_SPEED);
mHandler.sendEmptyMessageDelayed(SHOW_SPEED,2000);
break;