Android 統計Wifi/2G/3G/4G流量

來源:互聯網
上載者:User

需求: 統計Wifi/2G/3G/4G流量各多少


Issue:

一. 怎麼判斷2G/3G/4G

系統源碼TelephonyManager類裡提供了方法,只是隱藏了,所以可以參源碼


二.怎麼統計

Android 2.2後提供TrafficStats類,用來進行流量統計,具體使用參考手冊

這裡我用到了

static long getTotalRxBytes() //擷取總的接受位元組數,包含Mobile和WiFi等

static long getTotalTxBytes() //總的發送位元組數,包含Mobile和WiFi等


三.注意事項

1. android.net.conn.CONNECTIVITY_CHANGE廣播,當行動電話通訊類型切換的時候,系統會發送此廣播

2. TrafficStats.getTotalRxBytes()和TrafficStats.getTotalTxBytes()方法擷取的值是從開機開始記錄的


實現方法:

1. 建立TrafficData table, 欄位 trafficData(網路變化使用了多少流量), subtype(網路類型), starttime(開始時間), endtime(結束時間)

2. 建立Sharedpreferences, 記錄lastSystemTraffic(上次系統的流量大小),subtype(網路類型),startTime

3. 註冊DataTrafficReceiver.監聽 android.net.conn.CONNECTIVITY_CHANGE廣播和關機廣播,當網路變化的時候,擷取

currentTraffic=TrafficStats.getTotalRxBytes()+TrafficStats.getTotalTxBytes(), 讀取儲存在SP中的lastSystemTraffic.

上次網路使用流量 durationTraffic=currentTraffic-lastSystemTraffic. 將durationTraffic儲存到資料裡

並更新SP裡的值

4. 手機重啟時,重複3步驟,並清空SP裡的值





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.