Android,获取网速上下行速度
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,获取网速上下行速度相关推荐
- Android获取网速的方法
Android获取网速的方法 Android获取网速的方法 posted on 2018-08-23 11:54 时空观察者9号 阅读(...) 评论(...) 编辑 收藏
- Android获取网速和下载速度
Android应用里经常使用到网络速度的显示,特别是文件下载和视频缓冲的时候.今天笔者就遇到需要显示视频播放时的网速,用到的是TrafficStats类. 查找资料,参考了Android流量统计Tra ...
- java 基于oshi的系统监控工具类(带网速上行下行)
java 基于oshi的系统监控工具类(带网速上行下行) 一.pom.xml 二.工具类 1.服务器相关信息 Server.class 2.CPU相关信息 Cpu.class 3.內存相关信息 Mem ...
- 如何在Mac上测试宽带的网速(上传和下载速度)和网络质量
在mac电脑上怎么测试网速有多快?在使用mac电脑时,想测试一下自己的网络下载速度,或上传速度时,怎么测速?一起来看看吧. 有时我们新安装了宽带后,比如100M.200M甚至千兆的宽带,想要检测下宽带 ...
- Android获取网易云音乐歌曲详细信息
Android获取网易云音乐歌曲详细信息 一.目标 二.实现方案 三.最终方案 四.遗留问题 五.接下来 六.Finally 在<Android获取歌曲详细信息>一文中,介绍了几种获取网易 ...
- android手机网速,安卓手机网速慢怎么办 安卓手机网速慢解决办法【详解】
现在很多用户都在运用4G网络,4G网络速度很快,不过当你在那些信号差的地方,比如郊区.建筑物很密集的地方或者地铁等,会发现很多时候智能手机根本上不了网,简直让人崩溃,有一个方式也许能够帮到你,起码对小 ...
- 应用层获取UDP下上下行速率
声明:到目前为止,暂未发现有效的方式可以进行精准计算,或多或少会有偏差,但是希望一些思考方向能够帮助到大家. 需求:在非Root的手机上准确计算udp协议下的上行速率和下行速率 限制条件:服务器的带宽 ...
- android手机网速,简单一步让你的手机网速至少提升2倍!
关注"想帮帮"头条号,涨姿势! 帮哥哥刷微博时,无意中翻到一个贴:手机网速慢是一种什么样的体验?网友们的回复真是让哥有一种同是天涯沦落人的感觉.比如这样的,"我家的网速治 ...
- android手机网速,你的手机网速太慢?可以试一下调整这个设置,网速瞬间提升...
随着科技的不断发展,手机的功能也越来越多,而我们也越来越离不开手机.由于流量比较"昂贵",所以平时我们一般能连WiFi绝不使用移动数据.不知道你们有没有遇到这种情况,有些时候手机连 ...
最新文章
- 为什么C语言是非形式化的,《数据结构C语言版》——绪论
- 可持续发展的人工智能
- “AlphaGo之父”获最新一届ACM计算奖
- 11gR2 RAC手动添加节点数据库实例
- 国内开源社区巨作AspectCore-Framework入门
- Science:这种算法,也许将创造更公平的人工智能
- 5个实用提速深度学习模型的方法
- ipad上linux终端,如何使用iSH在iPad或iPhone上获取Linux Shell
- 自学python需要安装什么-学习python需要什么基础吗?老男孩Python
- 自己挖坑自己跳 之JsonMappingException: (was java.lang.NullPointerException) (through reference chain:)...
- 计算机右键菜单太多,鼠标右键菜单选项太多?教你清理多余菜单选项的方法-win7右键菜单管理...
- K-means聚类攻击类型
- STM32CubeIDE加CubeMX开发二——CudeMX的使用
- 用户登录·验证码测试登录
- je学习笔记一:jsp页面
- 关于拉姆达,委托,匿名函数
- java添加例外_JAVA例外处理
- HTML+CSS+JS大作业——汽车租赁(47页) 加特效 web期末作业设计网页_汽车大学生网页设计作业成品
- facebook使用教程_您可以在Facebook上使用假名吗?
- 【IDEA 报错 ERROR 16720 --- [ restartedMain] o.a.coyote.http11.Http11NioProtocol : Failed to sta】