Merge "Expose getTx/RxBytes in TrafficStats" am: 6ef6648cd9

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1440245

Change-Id: I69eb11657318438dbe794da849182a08e1847f94
This commit is contained in:
Junyu Lai
2020-11-25 04:14:46 +00:00
committed by Automerger Merge Worker
2 changed files with 52 additions and 10 deletions

View File

@@ -30273,6 +30273,7 @@ package android.net {
method public static long getMobileRxPackets(); method public static long getMobileRxPackets();
method public static long getMobileTxBytes(); method public static long getMobileTxBytes();
method public static long getMobileTxPackets(); method public static long getMobileTxPackets();
method public static long getRxBytes(@NonNull String);
method public static long getRxPackets(@NonNull String); method public static long getRxPackets(@NonNull String);
method public static int getThreadStatsTag(); method public static int getThreadStatsTag();
method public static int getThreadStatsUid(); method public static int getThreadStatsUid();
@@ -30280,6 +30281,7 @@ package android.net {
method public static long getTotalRxPackets(); method public static long getTotalRxPackets();
method public static long getTotalTxBytes(); method public static long getTotalTxBytes();
method public static long getTotalTxPackets(); method public static long getTotalTxPackets();
method public static long getTxBytes(@NonNull String);
method public static long getTxPackets(@NonNull String); method public static long getTxPackets(@NonNull String);
method public static long getUidRxBytes(int); method public static long getUidRxBytes(int);
method public static long getUidRxPackets(int); method public static long getUidRxPackets(int);

View File

@@ -597,10 +597,17 @@ public class TrafficStats {
} }
/** /**
* Return the number of packets transmitted on the specified interface since * Return the number of packets transmitted on the specified interface since the interface
* device boot. Statistics are measured at the network layer, so both TCP and * was created. Statistics are measured at the network layer, so both TCP and
* UDP usage are included. * 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. * @param iface The name of the interface.
* @return The number of transmitted packets. * @return The number of transmitted packets.
*/ */
@@ -613,10 +620,17 @@ public class TrafficStats {
} }
/** /**
* Return the number of packets received on the specified interface since * Return the number of packets received on the specified interface since the interface was
* device boot. Statistics are measured at the network layer, so both TCP * created. Statistics are measured at the network layer, so both TCP
* and UDP usage are included. * 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. * @param iface The name of the interface.
* @return The number of received packets. * @return The number of received packets.
*/ */
@@ -628,9 +642,22 @@ public class TrafficStats {
} }
} }
/** {@hide} */ /**
@UnsupportedAppUsage * Return the number of bytes transmitted on the specified interface since the interface
public static long getTxBytes(String iface) { * 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 { try {
return getStatsService().getIfaceStats(iface, TYPE_TX_BYTES); return getStatsService().getIfaceStats(iface, TYPE_TX_BYTES);
} catch (RemoteException e) { } catch (RemoteException e) {
@@ -638,9 +665,22 @@ public class TrafficStats {
} }
} }
/** {@hide} */ /**
@UnsupportedAppUsage * Return the number of bytes received on the specified interface since the interface
public static long getRxBytes(String iface) { * 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 { try {
return getStatsService().getIfaceStats(iface, TYPE_RX_BYTES); return getStatsService().getIfaceStats(iface, TYPE_RX_BYTES);
} catch (RemoteException e) { } catch (RemoteException e) {