android - TrafficStats.getTotalRxBytes 不统计视频观看流量

标签 android android-videoview traffic

我正在制作一个软件来播放在线视频,我正在尝试向软件添加流量统计功能。我尝试使用 TrafficStats 和 getUidRxBytes 函数。但是,它不计算 videoview 的净流量。 像下面的代码,我可以看到 rx(getTotalRxBytes 返回)增加了很多,但是 myapprx(getUidRxBytes 返回)没有变化。

int uid = VideoViewPlayer.this.getApplicationInfo().uid;
long rx = TrafficStats.getTotalRxBytes();
long tx = TrafficStats.getTotalTxBytes();
long myapprx = TrafficStats.getUidRxBytes(uid);
long myapptx = TrafficStats.getUidTxBytes(uid);
String info = "uid:"+uid+" rx:"+rx+" tx:"+tx+" myrx:"+myapprx+" mytx:"+myapptx;

更新
首先感谢,您的评论给了我重要的线索。我正试图找到负责流媒体的 uid。我使用以下代码。但是我找不到消耗流量的进程。

        List<ActivityManager.RunningAppProcessInfo> appProcessList = am.getRunningAppProcesses();
        ActivityManager.RunningAppProcessInfo info=null;
        //List<ActivityManager.RunningServiceInfo> appProcessList = am.getRunningServices(100);
        //ActivityManager.RunningServiceInfo info = null;

        strinfo = "";
        long max =0;
        for(int i=0;i<appProcessList.size();++i)
        {
            info = appProcessList.get(i);
            String key = info.processName+"_" +info.uid;

            if(mNetTraffic.containsKey(key))
            {
                long myrx = TrafficStats.getUidRxBytes(info.uid);
                long lastrx = mNetTraffic.get(key).longValue();
                mNetTraffic.put(key, new Long(myrx));
                if(myrx-lastrx>max && myrx - lastrx>0)
                {
                    max = myrx-lastrx;
                    strinfo = key +":"+max;
                }
            }else
            {
                long myrx = TrafficStats.getUidRxBytes(info.uid);
                mNetTraffic.put(key, new Long(myrx));
            }
        }
        //trying to watch the key and max and find process and uid, sadly cant find it

最佳答案

应该为不同的 UID 报告流媒体,因为它实际上是由 Android 内部进程和模块(OpenCORE 或 StageFright,取决于 Android 版本)流式传输和播放的。

关于android - TrafficStats.getTotalRxBytes 不统计视频观看流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8366316/

相关文章:

java - 如何查看/监控我的 zeromq PUBlisher 的订阅者?

android - 如何使用 Google Maps API/Directions API 获取道路危险

java - Android延迟/调度方法关注

java - VideoView 在通过套接字接收文件时播放文件

android - 无法在 Android Studio 中运行项目

android - 如何在两个视频 View 中并行播放一个视频文件?

android - 访问 Androids 流量统计

java - 从 List<Object> 填充 ListView

android - 以编程方式设置 ImageButton layout_gravity