貌似不能统计单个应用的吧,android上没看到过。统计到的流量都是中的流量。

解决方案 »

  1.   

    TrafficStats.getUidRxBytes(myuid);
    myuid是你的应用所有的uid,这个根据ActivityManager可以获取runing的程序获取到
    代码没有详细的给你,公司工作写的代码,没法抠出来,大概就是先获取uid,然后根据那个方法获取接收流量
    TrafficStats.getUidTxBytes(myuid);这个是发送流量。
    这些是指开机开始计的,你想统计月什么的,自己写个方法保存叠加就是
      

  2.   

    你这个就是统计2G和3G的流量,我需要统计的wifi的流量,而且是每一个应用程序的wifi流量
      

  3.   

    你这里只是统计2G、3G的流量,我需要统计的单个应用的wifi流量问题
      

  4.   

    你这里只是统计2G、3G的流量,我需要统计的单个应用的wifi流量问题
      

  5.   

    static long  getMobileRxBytes()  //获取通过Mobile连接收到的字节总数,不包含WiFi  
    static long  getMobileRxPackets()  //获取Mobile连接收到的数据包总数,不包含WiFi  
    static long  getMobileTxBytes()  //Mobile发送的总字节数  
    static long  getMobileTxPackets()  //Mobile发送的总数据包数  
    static long  getTotalRxBytes()  //获取总的接受字节数,包含Mobile和WiFi等  
    static long  getTotalRxPackets()  //总的接受数据包数,包含Mobile和WiFi等  
    static long  getTotalTxBytes()  //总的发送字节数,包含Mobile和WiFi等  
    static long  getTotalTxPackets()  //发送的总数据包数,包含Mobile和WiFi等  
    static long  getUidRxBytes(int uid)  //获取某个网络UID的接受字节数  
    static long  getUidTxBytes(int uid) //获取某个网络UID的发送字节数  
    你自己去理算法
      

  6.   

    还有,那个应该是包含2g/3g和wifi流量,至于怎么取单个应用的wifi,这个我大意了,没看清楚问题,不好意思
      

  7.   

    你想统计单个,我有个思路,就是判断是2g/3g还是wifi,设置个变量W,开机初始化,然后判断,如果开始就是wifi状态,就获取那个uid流量T,然后赋值给W,直到切换状态为止;如果切到2g/3g就获取,但是不加入那个变量,就是T,T-W为3g流量,记为G,如果一直没切换,就是W一直未变;此后如果切换了状态,就用T(最新)-G=W(最新);
    反之,你自己逻辑去,我觉着挺好实现的,就是花时间写下判断的算法
    如果你有什么异议,提出来,或许我的方法有错误,想的粗糙
      

  8.   

    可以通过Android中TelephonyManager类判断网络类型然后再进行统计,TelephonyManager类可以参考源码