0

我希望 mPreviousUpStream + mPreviousDownStream提供当前的实时互联网速度

private fun readTrafficStats() {
            val newBytesUpStream =  TrafficStats.getMobileTxBytes()  * 1024
            val newBytesDownStream = TrafficStats.getMobileRxBytes() * 1024
            val byteDiffUpStream = newBytesUpStream - mPreviousUpStream
            val byteDiffDownStream = newBytesDownStream - mPreviousDownStream
            synchronized(this) {
                val currentTime = SystemClock.elapsedRealtime()
                var bandwidthUpStream = 0.0
                var bandwidthDownStream = 0.0
              
                if (mPreviousUpStream >= 0) {
                    bandwidthUpStream = byteDiffUpStream * 1.0 / (currentTime - mLastTimeReading)
                }
                if (mPreviousDownStream >= 0) {
                    bandwidthDownStream = byteDiffDownStream * 1.0 / (currentTime - mLastTimeReading)
                }
                if (mTrafficSpeedListener != null) {
                    mTrafficSpeedListener!!.onTrafficSpeedMeasured(bandwidthUpStream, bandwidthDownStream)
                }
                mLastTimeReading = currentTime
            }
            mPreviousDownStream = newBytesDownStream
            mPreviousUpStream = newBytesUpStream
        }
    
        private fun finalReadTrafficStats() {
            readTrafficStats()
            mPreviousUpStream = -1
            mPreviousDownStream = -1
        }
    
        enum class TrafficType {
            MOBILE, ALL
        }

在上面的代码中

mPreviousUpStream + mPreviousDownStream

  1. 数据关闭时返回巨大的负数。
  2. 启动时的总数据使用量,而不是数据开启时的当前速度
  3. 其他时间工作正常,除了第一次打开数据时和最后一次关闭数据时出现问题

提前致谢 :)

在此处输入图像描述

4

0 回答 0