import android.net.TrafficStats
import java.math.BigDecimalclass GetUpAndDownloadSpeed {private var mCurrentTotalUp : Long = 0       //当前手机总的上行流量private var mCurrentTotalDown : Long = 0     //当前手机总的下行流量private var mLastTotalUp : Long = 0          //上次手机总的上行流量private var mLastTotalDown : Long = 0        //上次手机总的下行流量private var lastTimeStampTotalUp : Long = 0private var lastTimeStampTotalDown : Long = 0private var mCurrentUp : Long = 0            //当前手机指定进程的上行流量private var mCurrentDown : Long  = 0         //当前手机指定进程的下行流量private var mLastUp : Long = 0               //上次手机指定进程的上行流量private var mLastDown : Long = 0             //上次手机指定进程的下行流量private var lastTimeStampUp : Long = 0       //上行时间戳private var lastTimeStampDown : Long = 0     //下行时间戳//换算后的上下行速度private var totalUpSpeed : Float = 0.00Fprivate var totalDownSpeed : Float = 0.00Fprivate var upSpeed : Float = 0.00Fprivate var downSpeed : Float = 0.00Fprivate var defaultPointAmount = 2          //保留小数的位数,默认为2位//获取总的上行速度fun getTotalUpSpeed() : Float{                    //refreshTime : 刷新时间val currentTotalTxBytes = TrafficStats.getTotalTxBytes()val nowTimeStampTotalUp = System.currentTimeMillis()mCurrentTotalUp = currentTotalTxBytes - mLastTotalUp//计算上传速度totalUpSpeed = BigDecimal((mCurrentTotalUp/1024)*1000  /  ((nowTimeStampTotalUp-lastTimeStampTotalUp)*1.0)).setScale(defaultPointAmount,BigDecimal.ROUND_HALF_UP).toFloat() //单位: KB/s//保存当前的流量总和和上次的时间戳mLastTotalUp =  currentTotalTxByteslastTimeStampTotalUp = nowTimeStampTotalUpreturn totalUpSpeed}//获取总的下行速度fun getTotalDownloadSpeed() : Float{val currentTotalRxBytes = TrafficStats.getTotalRxBytes()val nowTimeStampTotalDown = System.currentTimeMillis()mCurrentTotalDown = currentTotalRxBytes - mLastTotalDown//计算下行速度totalDownSpeed = BigDecimal((mCurrentTotalDown/1024)*1000  /  ((nowTimeStampTotalDown-lastTimeStampTotalDown)*1.0)).setScale(defaultPointAmount,BigDecimal.ROUND_HALF_UP).toFloat() //单位: KB/s//保存当前的流量总和和上次的时间戳mLastTotalDown = currentTotalRxByteslastTimeStampTotalDown = nowTimeStampTotalDownreturn totalDownSpeed}//获取指定进程的上行速度fun getUpSpeedByUid(uid : Int) : Float{val currentTxBytes = TrafficStats.getUidTxBytes(uid)val nowTimeStampUp = System.currentTimeMillis()mCurrentUp = currentTxBytes - mLastUp//计算上传速度upSpeed = BigDecimal((mCurrentUp/1024)*1000  /  ((nowTimeStampUp-lastTimeStampUp)*1.0)).setScale(defaultPointAmount,BigDecimal.ROUND_HALF_UP).toFloat() //单位: KB/s//保存当前的流量总和和上次的时间戳mLastUp =  currentTxByteslastTimeStampUp = nowTimeStampUpreturn upSpeed}//获取总的下行速度fun getDownloadSpeedByUid(uid: Int) : Float{val currentRxBytes = TrafficStats.getUidRxBytes(uid)val nowTimeStampDown = System.currentTimeMillis()mCurrentDown = currentRxBytes - mLastDown//计算下行速度//downSpeed = numberFormat.format((mCurrentDown/1024)*1000  /  ((nowTimeStampDown-lastTimeStampDown).toFloat()) )   //单元为 KB/sdownSpeed = BigDecimal((mCurrentDown/1024)*1000  /  ((nowTimeStampDown-lastTimeStampDown)*1.0)).setScale(defaultPointAmount,BigDecimal.ROUND_HALF_UP).toFloat() //单位: KB/s//保存当前的流量总和和上次的时间戳mLastDown = currentRxByteslastTimeStampDown = nowTimeStampDownreturn downSpeed}
}

是用kotlin编写的,基本可以照着可以转换为Java

Android,获取网速上下行速度相关推荐

  1. Android获取网速的方法

    Android获取网速的方法 Android获取网速的方法 posted on 2018-08-23 11:54 时空观察者9号 阅读(...) 评论(...) 编辑 收藏

  2. Android获取网速和下载速度

    Android应用里经常使用到网络速度的显示,特别是文件下载和视频缓冲的时候.今天笔者就遇到需要显示视频播放时的网速,用到的是TrafficStats类. 查找资料,参考了Android流量统计Tra ...

  3. java 基于oshi的系统监控工具类(带网速上行下行)

    java 基于oshi的系统监控工具类(带网速上行下行) 一.pom.xml 二.工具类 1.服务器相关信息 Server.class 2.CPU相关信息 Cpu.class 3.內存相关信息 Mem ...

  4. 如何在Mac上测试宽带的网速(上传和下载速度)和网络质量

    在mac电脑上怎么测试网速有多快?在使用mac电脑时,想测试一下自己的网络下载速度,或上传速度时,怎么测速?一起来看看吧. 有时我们新安装了宽带后,比如100M.200M甚至千兆的宽带,想要检测下宽带 ...

  5. Android获取网易云音乐歌曲详细信息

    Android获取网易云音乐歌曲详细信息 一.目标 二.实现方案 三.最终方案 四.遗留问题 五.接下来 六.Finally 在<Android获取歌曲详细信息>一文中,介绍了几种获取网易 ...

  6. android手机网速,安卓手机网速慢怎么办 安卓手机网速慢解决办法【详解】

    现在很多用户都在运用4G网络,4G网络速度很快,不过当你在那些信号差的地方,比如郊区.建筑物很密集的地方或者地铁等,会发现很多时候智能手机根本上不了网,简直让人崩溃,有一个方式也许能够帮到你,起码对小 ...

  7. 应用层获取UDP下上下行速率

    声明:到目前为止,暂未发现有效的方式可以进行精准计算,或多或少会有偏差,但是希望一些思考方向能够帮助到大家. 需求:在非Root的手机上准确计算udp协议下的上行速率和下行速率 限制条件:服务器的带宽 ...

  8. android手机网速,简单一步让你的手机网速至少提升2倍!

    关注"想帮帮"头条号,涨姿势! 帮哥哥刷微博时,无意中翻到一个贴:手机网速慢是一种什么样的体验?网友们的回复真是让哥有一种同是天涯沦落人的感觉.比如这样的,"我家的网速治 ...

  9. android手机网速,你的手机网速太慢?可以试一下调整这个设置,网速瞬间提升...

    随着科技的不断发展,手机的功能也越来越多,而我们也越来越离不开手机.由于流量比较"昂贵",所以平时我们一般能连WiFi绝不使用移动数据.不知道你们有没有遇到这种情况,有些时候手机连 ...

最新文章

  1. 为什么C语言是非形式化的,《数据结构C语言版》——绪论
  2. 可持续发展的人工智能
  3. “AlphaGo之父”获最新一届ACM计算奖
  4. 11gR2 RAC手动添加节点数据库实例
  5. 国内开源社区巨作AspectCore-Framework入门
  6. Science:这种算法,也许将创造更公平的人工智能
  7. 5个实用提速深度学习模型的方法
  8. ipad上linux终端,如何使用iSH在iPad或iPhone上获取Linux Shell
  9. 自学python需要安装什么-学习python需要什么基础吗?老男孩Python
  10. 自己挖坑自己跳 之JsonMappingException: (was java.lang.NullPointerException) (through reference chain:)...
  11. 计算机右键菜单太多,鼠标右键菜单选项太多?教你清理多余菜单选项的方法-win7右键菜单管理...
  12. K-means聚类攻击类型
  13. STM32CubeIDE加CubeMX开发二——CudeMX的使用
  14. 用户登录·验证码测试登录
  15. je学习笔记一:jsp页面
  16. 关于拉姆达,委托,匿名函数
  17. java添加例外_JAVA例外处理
  18. HTML+CSS+JS大作业——汽车租赁(47页) 加特效 web期末作业设计网页_汽车大学生网页设计作业成品
  19. facebook使用教程_您可以在Facebook上使用假名吗?
  20. 【IDEA 报错 ERROR 16720 --- [ restartedMain] o.a.coyote.http11.Http11NioProtocol : Failed to sta】

热门文章

  1. 公司内部Wiki,你建立了么?
  2. yahoo军规的思考
  3. css 最简单的导航条
  4. 【服务器数据恢复】raid5阵列2块硬盘先后离线的数据恢复案例
  5. 教你如何从Google Map爬数据
  6. 江民科技创始人王江民病逝
  7. 印度政府发布 2022 年数字个人数据保护法案草案
  8. 电商软件的监听现在到这种地步了???
  9. java实现并列排名
  10. IT世界里的“国境线”(芯片与算法篇)