Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2dfbb3b authored by junyulai's avatar junyulai
Browse files

Expose getTx/RxBytes in TrafficStats

Test: atest FrameworksNetTests TrafficStatsTest
      atest android.net.cts android.net.wifi.cts
Bug: 164965653
Change-Id: I17b9d0bc2404c5727d4c4530ad941439b7b71a54
parent 72cb973a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -30273,6 +30273,7 @@ package android.net {
    method public static long getMobileRxPackets();
    method public static long getMobileTxBytes();
    method public static long getMobileTxPackets();
    method public static long getRxBytes(@NonNull String);
    method public static long getRxPackets(@NonNull String);
    method public static int getThreadStatsTag();
    method public static int getThreadStatsUid();
@@ -30280,6 +30281,7 @@ package android.net {
    method public static long getTotalRxPackets();
    method public static long getTotalTxBytes();
    method public static long getTotalTxPackets();
    method public static long getTxBytes(@NonNull String);
    method public static long getTxPackets(@NonNull String);
    method public static long getUidRxBytes(int);
    method public static long getUidRxPackets(int);
+50 −10
Original line number Diff line number Diff line
@@ -597,10 +597,17 @@ public class TrafficStats {
    }

    /**
     * Return the number of packets transmitted on the specified interface since
     * device boot. Statistics are measured at the network layer, so both TCP and
     * Return the number of packets transmitted on the specified interface since the interface
     * was created. Statistics are measured at the network layer, so both TCP and
     * UDP usage are included.
     *
     * Note that the returned values are partial statistics that do not count data from several
     * sources and do not apply several adjustments that are necessary for correctness, such
     * as adjusting for VPN apps, IPv6-in-IPv4 translation, etc. These values can be used to
     * determine whether traffic is being transferred on the specific interface but are not a
     * substitute for the more accurate statistics provided by the {@link NetworkStatsManager}
     * APIs.
     *
     * @param iface The name of the interface.
     * @return The number of transmitted packets.
     */
@@ -613,10 +620,17 @@ public class TrafficStats {
    }

    /**
     * Return the number of packets received on the specified interface since
     * device boot. Statistics are measured at the network layer, so both TCP
     * Return the number of packets received on the specified interface since the interface was
     * created. Statistics are measured at the network layer, so both TCP
     * and UDP usage are included.
     *
     * Note that the returned values are partial statistics that do not count data from several
     * sources and do not apply several adjustments that are necessary for correctness, such
     * as adjusting for VPN apps, IPv6-in-IPv4 translation, etc. These values can be used to
     * determine whether traffic is being transferred on the specific interface but are not a
     * substitute for the more accurate statistics provided by the {@link NetworkStatsManager}
     * APIs.
     *
     * @param iface The name of the interface.
     * @return The number of received packets.
     */
@@ -628,9 +642,22 @@ public class TrafficStats {
        }
    }

    /** {@hide} */
    @UnsupportedAppUsage
    public static long getTxBytes(String iface) {
    /**
     * Return the number of bytes transmitted on the specified interface since the interface
     * was created. Statistics are measured at the network layer, so both TCP and
     * UDP usage are included.
     *
     * Note that the returned values are partial statistics that do not count data from several
     * sources and do not apply several adjustments that are necessary for correctness, such
     * as adjusting for VPN apps, IPv6-in-IPv4 translation, etc. These values can be used to
     * determine whether traffic is being transferred on the specific interface but are not a
     * substitute for the more accurate statistics provided by the {@link NetworkStatsManager}
     * APIs.
     *
     * @param iface The name of the interface.
     * @return The number of transmitted bytes.
     */
    public static long getTxBytes(@NonNull String iface) {
        try {
            return getStatsService().getIfaceStats(iface, TYPE_TX_BYTES);
        } catch (RemoteException e) {
@@ -638,9 +665,22 @@ public class TrafficStats {
        }
    }

    /** {@hide} */
    @UnsupportedAppUsage
    public static long getRxBytes(String iface) {
    /**
     * Return the number of bytes received on the specified interface since the interface
     * was created. Statistics are measured at the network layer, so both TCP
     * and UDP usage are included.
     *
     * Note that the returned values are partial statistics that do not count data from several
     * sources and do not apply several adjustments that are necessary for correctness, such
     * as adjusting for VPN apps, IPv6-in-IPv4 translation, etc. These values can be used to
     * determine whether traffic is being transferred on the specific interface but are not a
     * substitute for the more accurate statistics provided by the {@link NetworkStatsManager}
     * APIs.
     *
     * @param iface The name of the interface.
     * @return The number of received bytes.
     */
    public static long getRxBytes(@NonNull String iface) {
        try {
            return getStatsService().getIfaceStats(iface, TYPE_RX_BYTES);
        } catch (RemoteException e) {