我需要监视设备上的所有网络活动,作为我的应用程序的一部分,而不是用于调试目的。 This post讨论了如何使用TCP转储,但有些答案表明这需要root。这些答案都没有真正解释如何在应用程序中完成。
我知道以某种方式可以从应用程序中访问所有网络流量,因为像Network Connections这样的应用程序可以显示正在访问的所有IP地址,以及哪些应用程序正在访问它们。
有谁知道我需要使用哪些API,权限等才能在我的应用中获取此类数据?
答案 0 :(得分:1)
如果你还在寻找,在android.net这个类中就有了这个类:
/**
* Collection of historical network statistics, recorded into equally-sized
* "buckets" in time. Internally it stores data in {@code long} series for more
* efficient persistence.
* <p>
* Each bucket is defined by a {@link #bucketStart} timestamp, and lasts for
* {@link #bucketDuration}. Internally assumes that {@link #bucketStart} is
* sorted at all times.
*
* @hide
*/
public class NetworkStatsHistory implements Parcelable {