|  | // Signature format: 2.0 | 
|  | package android.app.usage { | 
|  |  | 
|  | public class NetworkStatsManager { | 
|  | method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_STATS_PROVIDER, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void registerNetworkStatsProvider(@NonNull String, @NonNull android.net.netstats.provider.NetworkStatsProvider); | 
|  | method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_STATS_PROVIDER, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void unregisterNetworkStatsProvider(@NonNull android.net.netstats.provider.NetworkStatsProvider); | 
|  | } | 
|  |  | 
|  | } | 
|  |  | 
|  | package android.net { | 
|  |  | 
|  | public class EthernetManager { | 
|  | method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.MANAGE_ETHERNET_NETWORKS}) public void disableInterface(@NonNull String, @Nullable java.util.concurrent.Executor, @Nullable android.os.OutcomeReceiver<java.lang.String,android.net.EthernetNetworkManagementException>); | 
|  | method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.MANAGE_ETHERNET_NETWORKS}) public void enableInterface(@NonNull String, @Nullable java.util.concurrent.Executor, @Nullable android.os.OutcomeReceiver<java.lang.String,android.net.EthernetNetworkManagementException>); | 
|  | method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public android.net.EthernetManager.TetheredInterfaceRequest requestTetheredInterface(@NonNull java.util.concurrent.Executor, @NonNull android.net.EthernetManager.TetheredInterfaceCallback); | 
|  | method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.MANAGE_ETHERNET_NETWORKS}) public void updateConfiguration(@NonNull String, @NonNull android.net.EthernetNetworkUpdateRequest, @Nullable java.util.concurrent.Executor, @Nullable android.os.OutcomeReceiver<java.lang.String,android.net.EthernetNetworkManagementException>); | 
|  | } | 
|  |  | 
|  | public static interface EthernetManager.TetheredInterfaceCallback { | 
|  | method public void onAvailable(@NonNull String); | 
|  | method public void onUnavailable(); | 
|  | } | 
|  |  | 
|  | public static class EthernetManager.TetheredInterfaceRequest { | 
|  | method public void release(); | 
|  | } | 
|  |  | 
|  | public final class EthernetNetworkManagementException extends java.lang.RuntimeException implements android.os.Parcelable { | 
|  | ctor public EthernetNetworkManagementException(@NonNull String); | 
|  | method public int describeContents(); | 
|  | method public void writeToParcel(@NonNull android.os.Parcel, int); | 
|  | field @NonNull public static final android.os.Parcelable.Creator<android.net.EthernetNetworkManagementException> CREATOR; | 
|  | } | 
|  |  | 
|  | public final class EthernetNetworkUpdateRequest implements android.os.Parcelable { | 
|  | method public int describeContents(); | 
|  | method @Nullable public android.net.IpConfiguration getIpConfiguration(); | 
|  | method @Nullable public android.net.NetworkCapabilities getNetworkCapabilities(); | 
|  | method public void writeToParcel(@NonNull android.os.Parcel, int); | 
|  | field @NonNull public static final android.os.Parcelable.Creator<android.net.EthernetNetworkUpdateRequest> CREATOR; | 
|  | } | 
|  |  | 
|  | public static final class EthernetNetworkUpdateRequest.Builder { | 
|  | ctor public EthernetNetworkUpdateRequest.Builder(); | 
|  | ctor public EthernetNetworkUpdateRequest.Builder(@NonNull android.net.EthernetNetworkUpdateRequest); | 
|  | method @NonNull public android.net.EthernetNetworkUpdateRequest build(); | 
|  | method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setIpConfiguration(@Nullable android.net.IpConfiguration); | 
|  | method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setNetworkCapabilities(@Nullable android.net.NetworkCapabilities); | 
|  | } | 
|  |  | 
|  | public class IpSecManager { | 
|  | method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void applyTunnelModeTransform(@NonNull android.net.IpSecManager.IpSecTunnelInterface, int, @NonNull android.net.IpSecTransform) throws java.io.IOException; | 
|  | method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public android.net.IpSecManager.IpSecTunnelInterface createIpSecTunnelInterface(@NonNull java.net.InetAddress, @NonNull java.net.InetAddress, @NonNull android.net.Network) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException; | 
|  | } | 
|  |  | 
|  | public static final class IpSecManager.IpSecTunnelInterface implements java.lang.AutoCloseable { | 
|  | method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void addAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException; | 
|  | method public void close(); | 
|  | method @NonNull public String getInterfaceName(); | 
|  | method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void removeAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException; | 
|  | method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void setUnderlyingNetwork(@NonNull android.net.Network) throws java.io.IOException; | 
|  | } | 
|  |  | 
|  | public static class IpSecTransform.Builder { | 
|  | method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public android.net.IpSecTransform buildTunnelModeTransform(@NonNull java.net.InetAddress, @NonNull android.net.IpSecManager.SecurityParameterIndex) throws java.io.IOException, android.net.IpSecManager.ResourceUnavailableException, android.net.IpSecManager.SpiUnavailableException; | 
|  | } | 
|  |  | 
|  | public final class NetworkStats implements java.lang.Iterable<android.net.NetworkStats.Entry> android.os.Parcelable { | 
|  | ctor public NetworkStats(long, int); | 
|  | method @NonNull public android.net.NetworkStats add(@NonNull android.net.NetworkStats); | 
|  | method @NonNull public android.net.NetworkStats addEntry(@NonNull android.net.NetworkStats.Entry); | 
|  | method public int describeContents(); | 
|  | method @NonNull public java.util.Iterator<android.net.NetworkStats.Entry> iterator(); | 
|  | method @NonNull public android.net.NetworkStats subtract(@NonNull android.net.NetworkStats); | 
|  | method public void writeToParcel(@NonNull android.os.Parcel, int); | 
|  | field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStats> CREATOR; | 
|  | field public static final int DEFAULT_NETWORK_ALL = -1; // 0xffffffff | 
|  | field public static final int DEFAULT_NETWORK_NO = 0; // 0x0 | 
|  | field public static final int DEFAULT_NETWORK_YES = 1; // 0x1 | 
|  | field public static final String IFACE_VT = "vt_data0"; | 
|  | field public static final int METERED_ALL = -1; // 0xffffffff | 
|  | field public static final int METERED_NO = 0; // 0x0 | 
|  | field public static final int METERED_YES = 1; // 0x1 | 
|  | field public static final int ROAMING_ALL = -1; // 0xffffffff | 
|  | field public static final int ROAMING_NO = 0; // 0x0 | 
|  | field public static final int ROAMING_YES = 1; // 0x1 | 
|  | field public static final int SET_ALL = -1; // 0xffffffff | 
|  | field public static final int SET_DEFAULT = 0; // 0x0 | 
|  | field public static final int SET_FOREGROUND = 1; // 0x1 | 
|  | field public static final int TAG_NONE = 0; // 0x0 | 
|  | field public static final int UID_ALL = -1; // 0xffffffff | 
|  | field public static final int UID_TETHERING = -5; // 0xfffffffb | 
|  | } | 
|  |  | 
|  | public static class NetworkStats.Entry { | 
|  | ctor public NetworkStats.Entry(@Nullable String, int, int, int, int, int, int, long, long, long, long, long); | 
|  | method public int getDefaultNetwork(); | 
|  | method public int getMetered(); | 
|  | method public long getOperations(); | 
|  | method public int getRoaming(); | 
|  | method public long getRxBytes(); | 
|  | method public long getRxPackets(); | 
|  | method public int getSet(); | 
|  | method public int getTag(); | 
|  | method public long getTxBytes(); | 
|  | method public long getTxPackets(); | 
|  | method public int getUid(); | 
|  | } | 
|  |  | 
|  | public class TrafficStats { | 
|  | method public static void setThreadStatsTagApp(); | 
|  | method public static void setThreadStatsTagBackup(); | 
|  | method public static void setThreadStatsTagRestore(); | 
|  | field public static final int TAG_NETWORK_STACK_IMPERSONATION_RANGE_END = -113; // 0xffffff8f | 
|  | field public static final int TAG_NETWORK_STACK_IMPERSONATION_RANGE_START = -128; // 0xffffff80 | 
|  | field public static final int TAG_NETWORK_STACK_RANGE_END = -257; // 0xfffffeff | 
|  | field public static final int TAG_NETWORK_STACK_RANGE_START = -768; // 0xfffffd00 | 
|  | field public static final int TAG_SYSTEM_IMPERSONATION_RANGE_END = -241; // 0xffffff0f | 
|  | field public static final int TAG_SYSTEM_IMPERSONATION_RANGE_START = -256; // 0xffffff00 | 
|  | } | 
|  |  | 
|  | } | 
|  |  | 
|  | package android.net.netstats.provider { | 
|  |  | 
|  | public abstract class NetworkStatsProvider { | 
|  | ctor public NetworkStatsProvider(); | 
|  | method public void notifyAlertReached(); | 
|  | method public void notifyLimitReached(); | 
|  | method public void notifyStatsUpdated(int, @NonNull android.net.NetworkStats, @NonNull android.net.NetworkStats); | 
|  | method public void notifyWarningReached(); | 
|  | method public abstract void onRequestStatsUpdate(int); | 
|  | method public abstract void onSetAlert(long); | 
|  | method public abstract void onSetLimit(@NonNull String, long); | 
|  | method public void onSetWarningAndLimit(@NonNull String, long, long); | 
|  | field public static final int QUOTA_UNLIMITED = -1; // 0xffffffff | 
|  | } | 
|  |  | 
|  | } | 
|  |  |