gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 13:38:32 50 4
gpt4 key购买 nike

我正在制作一个软件来播放在线视频,我正在尝试向软件添加流量统计功能。我尝试使用 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/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com