// 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.nearby { public interface BroadcastCallback { method public void onStatusChanged(int); field public static final int STATUS_FAILURE = 1; // 0x1 field public static final int STATUS_FAILURE_ALREADY_REGISTERED = 2; // 0x2 field public static final int STATUS_FAILURE_MISSING_PERMISSIONS = 4; // 0x4 field public static final int STATUS_FAILURE_SIZE_EXCEED_LIMIT = 3; // 0x3 field public static final int STATUS_OK = 0; // 0x0 } public abstract class BroadcastRequest { method @NonNull public java.util.List getMediums(); method @IntRange(from=0xffffff81, to=126) public int getTxPower(); method public int getType(); method public int getVersion(); field public static final int BROADCAST_TYPE_NEARBY_PRESENCE = 3; // 0x3 field public static final int BROADCAST_TYPE_UNKNOWN = -1; // 0xffffffff field public static final int MEDIUM_BLE = 1; // 0x1 field public static final int PRESENCE_VERSION_UNKNOWN = -1; // 0xffffffff field public static final int PRESENCE_VERSION_V0 = 0; // 0x0 field public static final int PRESENCE_VERSION_V1 = 1; // 0x1 field public static final int UNKNOWN_TX_POWER = -127; // 0xffffff81 } public final class CredentialElement implements android.os.Parcelable { ctor public CredentialElement(@NonNull String, @NonNull byte[]); method public int describeContents(); method @NonNull public String getKey(); method @NonNull public byte[] getValue(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } public final class DataElement implements android.os.Parcelable { ctor public DataElement(int, @NonNull byte[]); method public int describeContents(); method public int getKey(); method @NonNull public byte[] getValue(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } public abstract class NearbyDevice { method @NonNull public java.util.List getMediums(); method @Nullable public String getName(); method @IntRange(from=0xffffff81, to=126) public int getRssi(); method public static boolean isValidMedium(int); } public class NearbyManager { method public void queryOffloadCapability(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void startBroadcast(@NonNull android.nearby.BroadcastRequest, @NonNull java.util.concurrent.Executor, @NonNull android.nearby.BroadcastCallback); method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int startScan(@NonNull android.nearby.ScanRequest, @NonNull java.util.concurrent.Executor, @NonNull android.nearby.ScanCallback); method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopBroadcast(@NonNull android.nearby.BroadcastCallback); method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopScan(@NonNull android.nearby.ScanCallback); } public final class OffloadCapability implements android.os.Parcelable { method public int describeContents(); method public long getVersion(); method public boolean isFastPairSupported(); method public boolean isNearbyShareSupported(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } public static final class OffloadCapability.Builder { ctor public OffloadCapability.Builder(); method @NonNull public android.nearby.OffloadCapability build(); method @NonNull public android.nearby.OffloadCapability.Builder setFastPairSupported(boolean); method @NonNull public android.nearby.OffloadCapability.Builder setNearbyShareSupported(boolean); method @NonNull public android.nearby.OffloadCapability.Builder setVersion(long); } public final class PresenceBroadcastRequest extends android.nearby.BroadcastRequest implements android.os.Parcelable { method public int describeContents(); method @NonNull public java.util.List getActions(); method @NonNull public android.nearby.PrivateCredential getCredential(); method @NonNull public java.util.List getExtendedProperties(); method @NonNull public byte[] getSalt(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } public static final class PresenceBroadcastRequest.Builder { ctor public PresenceBroadcastRequest.Builder(@NonNull java.util.List, @NonNull byte[], @NonNull android.nearby.PrivateCredential); method @NonNull public android.nearby.PresenceBroadcastRequest.Builder addAction(@IntRange(from=1, to=255) int); method @NonNull public android.nearby.PresenceBroadcastRequest.Builder addExtendedProperty(@NonNull android.nearby.DataElement); method @NonNull public android.nearby.PresenceBroadcastRequest build(); method @NonNull public android.nearby.PresenceBroadcastRequest.Builder setTxPower(@IntRange(from=0xffffff81, to=126) int); method @NonNull public android.nearby.PresenceBroadcastRequest.Builder setVersion(int); } public abstract class PresenceCredential { method @NonNull public byte[] getAuthenticityKey(); method @NonNull public java.util.List getCredentialElements(); method public int getIdentityType(); method @NonNull public byte[] getSecretId(); method public int getType(); field public static final int CREDENTIAL_TYPE_PRIVATE = 0; // 0x0 field public static final int CREDENTIAL_TYPE_PUBLIC = 1; // 0x1 field public static final int IDENTITY_TYPE_PRIVATE = 1; // 0x1 field public static final int IDENTITY_TYPE_PROVISIONED = 2; // 0x2 field public static final int IDENTITY_TYPE_TRUSTED = 3; // 0x3 field public static final int IDENTITY_TYPE_UNKNOWN = 0; // 0x0 } public final class PresenceDevice extends android.nearby.NearbyDevice implements android.os.Parcelable { method public int describeContents(); method @NonNull public String getDeviceId(); method @Nullable public String getDeviceImageUrl(); method public int getDeviceType(); method public long getDiscoveryTimestampMillis(); method @NonNull public byte[] getEncryptedIdentity(); method @NonNull public java.util.List getExtendedProperties(); method @NonNull public byte[] getSalt(); method @NonNull public byte[] getSecretId(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } public static final class PresenceDevice.Builder { ctor public PresenceDevice.Builder(@NonNull String, @NonNull byte[], @NonNull byte[], @NonNull byte[]); method @NonNull public android.nearby.PresenceDevice.Builder addExtendedProperty(@NonNull android.nearby.DataElement); method @NonNull public android.nearby.PresenceDevice.Builder addMedium(int); method @NonNull public android.nearby.PresenceDevice build(); method @NonNull public android.nearby.PresenceDevice.Builder setDeviceImageUrl(@Nullable String); method @NonNull public android.nearby.PresenceDevice.Builder setDeviceType(int); method @NonNull public android.nearby.PresenceDevice.Builder setDiscoveryTimestampMillis(long); method @NonNull public android.nearby.PresenceDevice.Builder setName(@Nullable String); method @NonNull public android.nearby.PresenceDevice.Builder setRssi(int); } public final class PresenceScanFilter extends android.nearby.ScanFilter implements android.os.Parcelable { method public int describeContents(); method @NonNull public java.util.List getCredentials(); method @NonNull public java.util.List getExtendedProperties(); method @NonNull public java.util.List getPresenceActions(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } public static final class PresenceScanFilter.Builder { ctor public PresenceScanFilter.Builder(); method @NonNull public android.nearby.PresenceScanFilter.Builder addCredential(@NonNull android.nearby.PublicCredential); method @NonNull public android.nearby.PresenceScanFilter.Builder addExtendedProperty(@NonNull android.nearby.DataElement); method @NonNull public android.nearby.PresenceScanFilter.Builder addPresenceAction(@IntRange(from=1, to=255) int); method @NonNull public android.nearby.PresenceScanFilter build(); method @NonNull public android.nearby.PresenceScanFilter.Builder setMaxPathLoss(@IntRange(from=0, to=127) int); } public final class PrivateCredential extends android.nearby.PresenceCredential implements android.os.Parcelable { method public int describeContents(); method @NonNull public String getDeviceName(); method @NonNull public byte[] getMetadataEncryptionKey(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } public static final class PrivateCredential.Builder { ctor public PrivateCredential.Builder(@NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull String); method @NonNull public android.nearby.PrivateCredential.Builder addCredentialElement(@NonNull android.nearby.CredentialElement); method @NonNull public android.nearby.PrivateCredential build(); method @NonNull public android.nearby.PrivateCredential.Builder setIdentityType(int); } public final class PublicCredential extends android.nearby.PresenceCredential implements android.os.Parcelable { method public int describeContents(); method @NonNull public byte[] getEncryptedMetadata(); method @NonNull public byte[] getEncryptedMetadataKeyTag(); method @NonNull public byte[] getPublicKey(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } public static final class PublicCredential.Builder { ctor public PublicCredential.Builder(@NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull byte[]); method @NonNull public android.nearby.PublicCredential.Builder addCredentialElement(@NonNull android.nearby.CredentialElement); method @NonNull public android.nearby.PublicCredential build(); method @NonNull public android.nearby.PublicCredential.Builder setIdentityType(int); } public interface ScanCallback { method public void onDiscovered(@NonNull android.nearby.NearbyDevice); method public default void onError(int); method public void onLost(@NonNull android.nearby.NearbyDevice); method public void onUpdated(@NonNull android.nearby.NearbyDevice); field public static final int ERROR_INVALID_ARGUMENT = 2; // 0x2 field public static final int ERROR_PERMISSION_DENIED = 3; // 0x3 field public static final int ERROR_RESOURCE_EXHAUSTED = 4; // 0x4 field public static final int ERROR_UNKNOWN = 0; // 0x0 field public static final int ERROR_UNSUPPORTED = 1; // 0x1 } public abstract class ScanFilter { method @IntRange(from=0, to=127) public int getMaxPathLoss(); method public int getType(); } public final class ScanRequest implements android.os.Parcelable { method public int describeContents(); method @NonNull public java.util.List getScanFilters(); method public int getScanMode(); method public int getScanType(); method @NonNull public android.os.WorkSource getWorkSource(); method public boolean isBleEnabled(); method public boolean isOffloadOnly(); method public static boolean isValidScanMode(int); method public static boolean isValidScanType(int); method @NonNull public static String scanModeToString(int); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; field public static final int SCAN_MODE_BALANCED = 1; // 0x1 field public static final int SCAN_MODE_LOW_LATENCY = 2; // 0x2 field public static final int SCAN_MODE_LOW_POWER = 0; // 0x0 field public static final int SCAN_MODE_NO_POWER = -1; // 0xffffffff field public static final int SCAN_TYPE_FAST_PAIR = 1; // 0x1 field public static final int SCAN_TYPE_NEARBY_PRESENCE = 2; // 0x2 } public static final class ScanRequest.Builder { ctor public ScanRequest.Builder(); method @NonNull public android.nearby.ScanRequest.Builder addScanFilter(@NonNull android.nearby.ScanFilter); method @NonNull public android.nearby.ScanRequest build(); method @NonNull public android.nearby.ScanRequest.Builder setBleEnabled(boolean); method @NonNull public android.nearby.ScanRequest.Builder setOffloadOnly(boolean); method @NonNull public android.nearby.ScanRequest.Builder setScanMode(int); method @NonNull public android.nearby.ScanRequest.Builder setScanType(int); method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.nearby.ScanRequest.Builder setWorkSource(@Nullable android.os.WorkSource); } } 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); 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); 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); } 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 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 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; method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void startTunnelModeTransformMigration(@NonNull android.net.IpSecTransform, @NonNull java.net.InetAddress, @NonNull java.net.InetAddress); } 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.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 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 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 } }