现在一天上网是非常昂贵的。提供商使用的收费像地狱一样。我们不使用无限的互联网计划。这就是为什么我想开发一个可以计算(管理)网络包/数据使用的工具。
假设我已经激活了 5GB 数据计划。所以我需要在上网之前检查,上传/下载东西。
我知道一些数据提供商提供了这些设施。我想通过我的应用程序在我的 android 设备上捕获网络数据包。但是我怎样才能在我自己的代码中做到这一点。任何帮助将不胜感激。谢谢提前
现在一天上网是非常昂贵的。提供商使用的收费像地狱一样。我们不使用无限的互联网计划。这就是为什么我想开发一个可以计算(管理)网络包/数据使用的工具。
假设我已经激活了 5GB 数据计划。所以我需要在上网之前检查,上传/下载东西。
我知道一些数据提供商提供了这些设施。我想通过我的应用程序在我的 android 设备上捕获网络数据包。但是我怎样才能在我自己的代码中做到这一点。任何帮助将不胜感激。谢谢提前
请检查一下。
TextView infoView = (TextView)findViewById(R.id.traffic_info);
String info = "";
info += "Mobile Interface:\n";
info += ("\tReceived: " + TrafficStats.getMobileRxBytes() + " bytes / " + TrafficStats.getMobileRxPackets() + " packets\n");
info += ("\tTransmitted: " + TrafficStats.getMobileTxBytes() + " bytes / " + TrafficStats.getMobileTxPackets() + " packets\n");
info += "All Network Interface:\n";
info += ("\tReceived: " + TrafficStats.getTotalRxBytes() + " bytes / " + TrafficStats.getTotalRxPackets() + " packets\n");
info += ("\tTransmitted: " + TrafficStats.getTotalTxBytes() + " bytes / " + TrafficStats.getTotalTxPackets() + " packets\n");
infoView.setText(info);
从 APILevel 8 开始使用 TrafficStats 类。您可以获得每个无线接入技术和每个应用程序的总体使用情况。
见http://developer.android.com/reference/android/net/TrafficStats.html 都是静态方法,例如调用 TrafficStats.getMobileRxBytes()