2012-02-19 49 views
4

我试图获取由我的应用程序生成的流量。它包括一个视频流,我想获取网络使用数据。来自特定应用程序的trafficstats

我使用了MobileStats和Mobile和Total功能。现在我想设置它使用应用程序的UID,但我没有设法这样做,因为它总是返回-1。我正在使用Android 2.3.4,这里是代码:

int uid = getApplication().getApplicationInfo().uid; 
uid = android.os.Process.myUid(); 
long txApp = TrafficStats.getUidTxBytes(uid); 
long rxApp = TrafficStats.getUidRxBytes(uid); 

对于这两个uids,我都会在TrafficStats上得到一个错误(-1)。任何帮助?

+0

你能分享一下你的手机型号吗?我只想看看TrafficStats.getUidTxBytes()是多么可靠。 Android文档还表示,某些手机无法访问networkStats。 – Gem 2014-09-18 13:11:22

+0

我用Nexus S做了所有的开发。我可以尝试寻找更多的信息,但这是我2年前完成的一个项目。 – jlanza 2014-09-22 08:34:13

回答

4

看起来您的设备不支持TrafficStatsThe documentation指出:

如果统计信息不被此设备支持,则会返回UNSUPPORTED。

TrafficStats.UNSUPPORTED的代码是-1

您可以改为阅读/sys/class/net/日志文件。试试this answer中提供的代码。

+0

我忘了提供答案。发展如此繁忙。我按照你说的方式做了。就像阅读文件一样简单;) – jlanza 2012-03-01 07:43:22

+0

太棒了!感谢您的反馈。 – 2012-06-22 11:45:00

+0

@paul这种情况如此罕见?我们不能从manifest中检查这个功能吗? – Gem 2014-09-18 13:15:33

相关问题