Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 統計Wifi/2G/3G/4G流量

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

編輯:關於Android編程

需求: 統計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裡的值





  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved