可以从Android应用程序计算Wi-Fi中使用的数据量

Ran*_*mar 2 networking android android-wifi

  1. 我正在开发一个应用程序,我需要扫描WiFi网络并显示所有连接设备的列表.

我从这里找到了设备检测的解决方案.

  1. 我需要从Wi-Fi网络使用多少数据? 我不知道它是否可能.

任何人都知道我的第二个要求.

谢谢你的帮助.欢迎任何建议/意见.

编辑:我可以从我的应用程序中获取此详细信息.

未安装在用户应用中.

因为这个应用程序用于酒店的Wi-Fi.每个客户都使用酒店的Wi-Fi,但他们没有app.酒店管理员收集客户使用数据的金额.在我的应用程序的帮助下.

Chi*_*hod 6

可以知道您的设备消耗了多少数据.Android OS提供TrafficStats类,可为您提供网络使用的大量数据.

试试下面的例子.

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");

Log.d("Network","Usage : "+info);
Run Code Online (Sandbox Code Playgroud)

编辑

据我所知,无法从路由器获取有关它消耗了多少数据的信息.可能有某种机制与路由器通信.但如何沟通是一个很大的问题.因为所有路由器都有其安全级别.

建议

如果您了解Tethering&portable hotspot,您可以做一件事.您可以从设备创建Wi-Fi热点.您可以添加" 无安全性"以允许客户与您的Wi-Fi热点连接.

您的设备将与实际的Wi-Fi路由器连接,所有其他客户将与您的设备连接.因此,无论您的设备使用何种数据,都可以进行计算.

注意

wifi热点的连接数量有限.