我正面临着这个问题。我花了很多时间搜索一些API
或“某些东西”,因为它可以通过其他应用程序的Wi-Fi获取传输的数据(截图如下所示)。
有人知道如何做到这一点吗?在这里有人试过(或已经做过)类似的事情吗?或者有点不同:这可能吗?
目前我认为这是不可能的因为我认为非系统应用程序无法从设备上安装的其他应用程序检索数据。但也许我可以“失踪”一些事情,所以我提出了这个问题,并且会对任何建议感到高兴。
提前致谢!
答案 0 :(得分:5)
Class that provides network traffic statistics. These statistics include bytes transmitted and received and network packets transmitted and received, over all interfaces, over the mobile interface, and on a per-UID basis.
这意味着你可以使用 getUidTxBytes 来获取整个传输数据,到目前为止 getUidRxBytes 可以获得整个接收数据。
您可以通过以下方式获取应用程序的 UID
getApplicationInfo().uid
或其他应用程序请参阅THIS
答案 1 :(得分:3)
虽然Sercan的答案是正确的,但必须警告您TrafficStats并不总能保证给您正确的统计数据。基本上,TrafficStats将检查目录/ proc / uid_stat / 1094 /中的文件以及此目录下的tcp_snd,tcp_rcv等各种文件。在某些设备上,这些(伪)文件不会更新。因此,您应该始终检查UNSUPPORTED(-1)http://developer.android.com/reference/android/net/TrafficStats.html#UNSUPPORTED
的返回值此外,通常这些统计数据还没有包括UDP数据。因此,您报告的数字对于使用UDP的应用程序(如VoIP应用程序)是错误的。有关详细信息,请查看 https://code.google.com/p/android/issues/detail?id=32410
在最新的Android版本中,还有另一个/ proc文件可以为您提供大量详细信息。这是在/ proc / self / net / xt_qtaguid / stats。但是这个伪文件只会显示应用程序读取的统计信息。任何Android应用都会尝试阅读此文件,但不会获得与任何其他Android应用相关的统计信息。
答案 2 :(得分:0)
为什么不尝试阅读包含网络信息的配置文件? 试试这个: adb shell cd / proc / uid_stat / XXXX(Proc id) cat tcp_rcv / tcp_snd