1// Signature format: 2.0 2package android.app.usage { 3 4 public class NetworkStatsManager { 5 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); 6 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); 7 } 8 9} 10 11package android.nearby { 12 13 public interface BroadcastCallback { 14 method public void onStatusChanged(int); 15 field public static final int STATUS_FAILURE = 1; // 0x1 16 field public static final int STATUS_FAILURE_ALREADY_REGISTERED = 2; // 0x2 17 field public static final int STATUS_FAILURE_MISSING_PERMISSIONS = 4; // 0x4 18 field public static final int STATUS_FAILURE_SIZE_EXCEED_LIMIT = 3; // 0x3 19 field public static final int STATUS_OK = 0; // 0x0 20 } 21 22 public abstract class BroadcastRequest { 23 method @NonNull public java.util.List<java.lang.Integer> getMediums(); 24 method @IntRange(from=0xffffff81, to=126) public int getTxPower(); 25 method public int getType(); 26 method public int getVersion(); 27 field public static final int BROADCAST_TYPE_NEARBY_PRESENCE = 3; // 0x3 28 field public static final int BROADCAST_TYPE_UNKNOWN = -1; // 0xffffffff 29 field public static final int MEDIUM_BLE = 1; // 0x1 30 field public static final int PRESENCE_VERSION_UNKNOWN = -1; // 0xffffffff 31 field public static final int PRESENCE_VERSION_V0 = 0; // 0x0 32 field public static final int PRESENCE_VERSION_V1 = 1; // 0x1 33 field public static final int UNKNOWN_TX_POWER = -127; // 0xffffff81 34 } 35 36 public final class CredentialElement implements android.os.Parcelable { 37 ctor public CredentialElement(@NonNull String, @NonNull byte[]); 38 method public int describeContents(); 39 method @NonNull public String getKey(); 40 method @NonNull public byte[] getValue(); 41 method public void writeToParcel(@NonNull android.os.Parcel, int); 42 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.CredentialElement> CREATOR; 43 } 44 45 public final class DataElement implements android.os.Parcelable { 46 ctor public DataElement(int, @NonNull byte[]); 47 method public int describeContents(); 48 method public int getKey(); 49 method @NonNull public byte[] getValue(); 50 method public void writeToParcel(@NonNull android.os.Parcel, int); 51 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.DataElement> CREATOR; 52 } 53 54 public abstract class NearbyDevice { 55 method @NonNull public java.util.List<java.lang.Integer> getMediums(); 56 method @Nullable public String getName(); 57 method @IntRange(from=0xffffff81, to=126) public int getRssi(); 58 method public static boolean isValidMedium(int); 59 } 60 61 public class NearbyManager { 62 method public void queryOffloadCapability(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.nearby.OffloadCapability>); 63 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); 64 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); 65 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopBroadcast(@NonNull android.nearby.BroadcastCallback); 66 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopScan(@NonNull android.nearby.ScanCallback); 67 } 68 69 public final class OffloadCapability implements android.os.Parcelable { 70 method public int describeContents(); 71 method public long getVersion(); 72 method public boolean isFastPairSupported(); 73 method public boolean isNearbyShareSupported(); 74 method public void writeToParcel(@NonNull android.os.Parcel, int); 75 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.OffloadCapability> CREATOR; 76 } 77 78 public static final class OffloadCapability.Builder { 79 ctor public OffloadCapability.Builder(); 80 method @NonNull public android.nearby.OffloadCapability build(); 81 method @NonNull public android.nearby.OffloadCapability.Builder setFastPairSupported(boolean); 82 method @NonNull public android.nearby.OffloadCapability.Builder setNearbyShareSupported(boolean); 83 method @NonNull public android.nearby.OffloadCapability.Builder setVersion(long); 84 } 85 86 public final class PresenceBroadcastRequest extends android.nearby.BroadcastRequest implements android.os.Parcelable { 87 method public int describeContents(); 88 method @NonNull public java.util.List<java.lang.Integer> getActions(); 89 method @NonNull public android.nearby.PrivateCredential getCredential(); 90 method @NonNull public java.util.List<android.nearby.DataElement> getExtendedProperties(); 91 method @NonNull public byte[] getSalt(); 92 method public void writeToParcel(@NonNull android.os.Parcel, int); 93 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PresenceBroadcastRequest> CREATOR; 94 } 95 96 public static final class PresenceBroadcastRequest.Builder { 97 ctor public PresenceBroadcastRequest.Builder(@NonNull java.util.List<java.lang.Integer>, @NonNull byte[], @NonNull android.nearby.PrivateCredential); 98 method @NonNull public android.nearby.PresenceBroadcastRequest.Builder addAction(@IntRange(from=1, to=255) int); 99 method @NonNull public android.nearby.PresenceBroadcastRequest.Builder addExtendedProperty(@NonNull android.nearby.DataElement); 100 method @NonNull public android.nearby.PresenceBroadcastRequest build(); 101 method @NonNull public android.nearby.PresenceBroadcastRequest.Builder setTxPower(@IntRange(from=0xffffff81, to=126) int); 102 method @NonNull public android.nearby.PresenceBroadcastRequest.Builder setVersion(int); 103 } 104 105 public abstract class PresenceCredential { 106 method @NonNull public byte[] getAuthenticityKey(); 107 method @NonNull public java.util.List<android.nearby.CredentialElement> getCredentialElements(); 108 method public int getIdentityType(); 109 method @NonNull public byte[] getSecretId(); 110 method public int getType(); 111 field public static final int CREDENTIAL_TYPE_PRIVATE = 0; // 0x0 112 field public static final int CREDENTIAL_TYPE_PUBLIC = 1; // 0x1 113 field public static final int IDENTITY_TYPE_PRIVATE = 1; // 0x1 114 field public static final int IDENTITY_TYPE_PROVISIONED = 2; // 0x2 115 field public static final int IDENTITY_TYPE_TRUSTED = 3; // 0x3 116 field public static final int IDENTITY_TYPE_UNKNOWN = 0; // 0x0 117 } 118 119 public final class PresenceDevice extends android.nearby.NearbyDevice implements android.os.Parcelable { 120 method public int describeContents(); 121 method @NonNull public String getDeviceId(); 122 method @Nullable public String getDeviceImageUrl(); 123 method public int getDeviceType(); 124 method public long getDiscoveryTimestampMillis(); 125 method @NonNull public byte[] getEncryptedIdentity(); 126 method @NonNull public java.util.List<android.nearby.DataElement> getExtendedProperties(); 127 method @NonNull public byte[] getSalt(); 128 method @NonNull public byte[] getSecretId(); 129 method public void writeToParcel(@NonNull android.os.Parcel, int); 130 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PresenceDevice> CREATOR; 131 } 132 133 public static final class PresenceDevice.Builder { 134 ctor public PresenceDevice.Builder(@NonNull String, @NonNull byte[], @NonNull byte[], @NonNull byte[]); 135 method @NonNull public android.nearby.PresenceDevice.Builder addExtendedProperty(@NonNull android.nearby.DataElement); 136 method @NonNull public android.nearby.PresenceDevice.Builder addMedium(int); 137 method @NonNull public android.nearby.PresenceDevice build(); 138 method @NonNull public android.nearby.PresenceDevice.Builder setDeviceImageUrl(@Nullable String); 139 method @NonNull public android.nearby.PresenceDevice.Builder setDeviceType(int); 140 method @NonNull public android.nearby.PresenceDevice.Builder setDiscoveryTimestampMillis(long); 141 method @NonNull public android.nearby.PresenceDevice.Builder setName(@Nullable String); 142 method @NonNull public android.nearby.PresenceDevice.Builder setRssi(int); 143 } 144 145 public final class PresenceScanFilter extends android.nearby.ScanFilter implements android.os.Parcelable { 146 method public int describeContents(); 147 method @NonNull public java.util.List<android.nearby.PublicCredential> getCredentials(); 148 method @NonNull public java.util.List<android.nearby.DataElement> getExtendedProperties(); 149 method @NonNull public java.util.List<java.lang.Integer> getPresenceActions(); 150 method public void writeToParcel(@NonNull android.os.Parcel, int); 151 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PresenceScanFilter> CREATOR; 152 } 153 154 public static final class PresenceScanFilter.Builder { 155 ctor public PresenceScanFilter.Builder(); 156 method @NonNull public android.nearby.PresenceScanFilter.Builder addCredential(@NonNull android.nearby.PublicCredential); 157 method @NonNull public android.nearby.PresenceScanFilter.Builder addExtendedProperty(@NonNull android.nearby.DataElement); 158 method @NonNull public android.nearby.PresenceScanFilter.Builder addPresenceAction(@IntRange(from=1, to=255) int); 159 method @NonNull public android.nearby.PresenceScanFilter build(); 160 method @NonNull public android.nearby.PresenceScanFilter.Builder setMaxPathLoss(@IntRange(from=0, to=127) int); 161 } 162 163 public final class PrivateCredential extends android.nearby.PresenceCredential implements android.os.Parcelable { 164 method public int describeContents(); 165 method @NonNull public String getDeviceName(); 166 method @NonNull public byte[] getMetadataEncryptionKey(); 167 method public void writeToParcel(@NonNull android.os.Parcel, int); 168 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PrivateCredential> CREATOR; 169 } 170 171 public static final class PrivateCredential.Builder { 172 ctor public PrivateCredential.Builder(@NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull String); 173 method @NonNull public android.nearby.PrivateCredential.Builder addCredentialElement(@NonNull android.nearby.CredentialElement); 174 method @NonNull public android.nearby.PrivateCredential build(); 175 method @NonNull public android.nearby.PrivateCredential.Builder setIdentityType(int); 176 } 177 178 public final class PublicCredential extends android.nearby.PresenceCredential implements android.os.Parcelable { 179 method public int describeContents(); 180 method @NonNull public byte[] getEncryptedMetadata(); 181 method @NonNull public byte[] getEncryptedMetadataKeyTag(); 182 method @NonNull public byte[] getPublicKey(); 183 method public void writeToParcel(@NonNull android.os.Parcel, int); 184 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PublicCredential> CREATOR; 185 } 186 187 public static final class PublicCredential.Builder { 188 ctor public PublicCredential.Builder(@NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull byte[]); 189 method @NonNull public android.nearby.PublicCredential.Builder addCredentialElement(@NonNull android.nearby.CredentialElement); 190 method @NonNull public android.nearby.PublicCredential build(); 191 method @NonNull public android.nearby.PublicCredential.Builder setIdentityType(int); 192 } 193 194 public interface ScanCallback { 195 method public void onDiscovered(@NonNull android.nearby.NearbyDevice); 196 method public default void onError(int); 197 method public void onLost(@NonNull android.nearby.NearbyDevice); 198 method public void onUpdated(@NonNull android.nearby.NearbyDevice); 199 field public static final int ERROR_INVALID_ARGUMENT = 2; // 0x2 200 field public static final int ERROR_PERMISSION_DENIED = 3; // 0x3 201 field public static final int ERROR_RESOURCE_EXHAUSTED = 4; // 0x4 202 field public static final int ERROR_UNKNOWN = 0; // 0x0 203 field public static final int ERROR_UNSUPPORTED = 1; // 0x1 204 } 205 206 public abstract class ScanFilter { 207 method @IntRange(from=0, to=127) public int getMaxPathLoss(); 208 method public int getType(); 209 } 210 211 public final class ScanRequest implements android.os.Parcelable { 212 method public int describeContents(); 213 method @NonNull public java.util.List<android.nearby.ScanFilter> getScanFilters(); 214 method public int getScanMode(); 215 method public int getScanType(); 216 method @NonNull public android.os.WorkSource getWorkSource(); 217 method public boolean isBleEnabled(); 218 method public boolean isOffloadOnly(); 219 method public static boolean isValidScanMode(int); 220 method public static boolean isValidScanType(int); 221 method @NonNull public static String scanModeToString(int); 222 method public void writeToParcel(@NonNull android.os.Parcel, int); 223 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.ScanRequest> CREATOR; 224 field public static final int SCAN_MODE_BALANCED = 1; // 0x1 225 field public static final int SCAN_MODE_LOW_LATENCY = 2; // 0x2 226 field public static final int SCAN_MODE_LOW_POWER = 0; // 0x0 227 field public static final int SCAN_MODE_NO_POWER = -1; // 0xffffffff 228 field public static final int SCAN_TYPE_FAST_PAIR = 1; // 0x1 229 field public static final int SCAN_TYPE_NEARBY_PRESENCE = 2; // 0x2 230 } 231 232 public static final class ScanRequest.Builder { 233 ctor public ScanRequest.Builder(); 234 method @NonNull public android.nearby.ScanRequest.Builder addScanFilter(@NonNull android.nearby.ScanFilter); 235 method @NonNull public android.nearby.ScanRequest build(); 236 method @NonNull public android.nearby.ScanRequest.Builder setBleEnabled(boolean); 237 method @NonNull public android.nearby.ScanRequest.Builder setOffloadOnly(boolean); 238 method @NonNull public android.nearby.ScanRequest.Builder setScanMode(int); 239 method @NonNull public android.nearby.ScanRequest.Builder setScanType(int); 240 method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.nearby.ScanRequest.Builder setWorkSource(@Nullable android.os.WorkSource); 241 } 242 243} 244 245package android.net { 246 247 public class EthernetManager { 248 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>); 249 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>); 250 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); 251 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>); 252 } 253 254 public static interface EthernetManager.TetheredInterfaceCallback { 255 method public void onAvailable(@NonNull String); 256 method public void onUnavailable(); 257 } 258 259 public static class EthernetManager.TetheredInterfaceRequest { 260 method public void release(); 261 } 262 263 public final class EthernetNetworkManagementException extends java.lang.RuntimeException implements android.os.Parcelable { 264 ctor public EthernetNetworkManagementException(@NonNull String); 265 method public int describeContents(); 266 method public void writeToParcel(@NonNull android.os.Parcel, int); 267 field @NonNull public static final android.os.Parcelable.Creator<android.net.EthernetNetworkManagementException> CREATOR; 268 } 269 270 public final class EthernetNetworkUpdateRequest implements android.os.Parcelable { 271 method public int describeContents(); 272 method @Nullable public android.net.IpConfiguration getIpConfiguration(); 273 method @Nullable public android.net.NetworkCapabilities getNetworkCapabilities(); 274 method public void writeToParcel(@NonNull android.os.Parcel, int); 275 field @NonNull public static final android.os.Parcelable.Creator<android.net.EthernetNetworkUpdateRequest> CREATOR; 276 } 277 278 public static final class EthernetNetworkUpdateRequest.Builder { 279 ctor public EthernetNetworkUpdateRequest.Builder(); 280 ctor public EthernetNetworkUpdateRequest.Builder(@NonNull android.net.EthernetNetworkUpdateRequest); 281 method @NonNull public android.net.EthernetNetworkUpdateRequest build(); 282 method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setIpConfiguration(@Nullable android.net.IpConfiguration); 283 method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setNetworkCapabilities(@Nullable android.net.NetworkCapabilities); 284 } 285 286 public class IpSecManager { 287 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; 288 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; 289 method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void startTunnelModeTransformMigration(@NonNull android.net.IpSecTransform, @NonNull java.net.InetAddress, @NonNull java.net.InetAddress); 290 } 291 292 public static final class IpSecManager.IpSecTunnelInterface implements java.lang.AutoCloseable { 293 method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void addAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException; 294 method public void close(); 295 method @NonNull public String getInterfaceName(); 296 method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void removeAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException; 297 method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void setUnderlyingNetwork(@NonNull android.net.Network) throws java.io.IOException; 298 } 299 300 public static class IpSecTransform.Builder { 301 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; 302 } 303 304 public final class NetworkStats implements java.lang.Iterable<android.net.NetworkStats.Entry> android.os.Parcelable { 305 ctor public NetworkStats(long, int); 306 method @NonNull public android.net.NetworkStats add(@NonNull android.net.NetworkStats); 307 method @NonNull public android.net.NetworkStats addEntry(@NonNull android.net.NetworkStats.Entry); 308 method public int describeContents(); 309 method @NonNull public java.util.Iterator<android.net.NetworkStats.Entry> iterator(); 310 method @NonNull public android.net.NetworkStats subtract(@NonNull android.net.NetworkStats); 311 method public void writeToParcel(@NonNull android.os.Parcel, int); 312 field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStats> CREATOR; 313 field public static final int DEFAULT_NETWORK_ALL = -1; // 0xffffffff 314 field public static final int DEFAULT_NETWORK_NO = 0; // 0x0 315 field public static final int DEFAULT_NETWORK_YES = 1; // 0x1 316 field public static final String IFACE_VT = "vt_data0"; 317 field public static final int METERED_ALL = -1; // 0xffffffff 318 field public static final int METERED_NO = 0; // 0x0 319 field public static final int METERED_YES = 1; // 0x1 320 field public static final int ROAMING_ALL = -1; // 0xffffffff 321 field public static final int ROAMING_NO = 0; // 0x0 322 field public static final int ROAMING_YES = 1; // 0x1 323 field public static final int SET_ALL = -1; // 0xffffffff 324 field public static final int SET_DEFAULT = 0; // 0x0 325 field public static final int SET_FOREGROUND = 1; // 0x1 326 field public static final int TAG_NONE = 0; // 0x0 327 field public static final int UID_ALL = -1; // 0xffffffff 328 field public static final int UID_TETHERING = -5; // 0xfffffffb 329 } 330 331 public static class NetworkStats.Entry { 332 ctor public NetworkStats.Entry(@Nullable String, int, int, int, int, int, int, long, long, long, long, long); 333 method public int getDefaultNetwork(); 334 method public int getMetered(); 335 method public long getOperations(); 336 method public int getRoaming(); 337 method public long getRxBytes(); 338 method public long getRxPackets(); 339 method public int getSet(); 340 method public int getTag(); 341 method public long getTxBytes(); 342 method public long getTxPackets(); 343 method public int getUid(); 344 } 345 346 public class TrafficStats { 347 method public static void setThreadStatsTagApp(); 348 method public static void setThreadStatsTagBackup(); 349 method public static void setThreadStatsTagRestore(); 350 field public static final int TAG_NETWORK_STACK_IMPERSONATION_RANGE_END = -113; // 0xffffff8f 351 field public static final int TAG_NETWORK_STACK_IMPERSONATION_RANGE_START = -128; // 0xffffff80 352 field public static final int TAG_NETWORK_STACK_RANGE_END = -257; // 0xfffffeff 353 field public static final int TAG_NETWORK_STACK_RANGE_START = -768; // 0xfffffd00 354 field public static final int TAG_SYSTEM_IMPERSONATION_RANGE_END = -241; // 0xffffff0f 355 field public static final int TAG_SYSTEM_IMPERSONATION_RANGE_START = -256; // 0xffffff00 356 } 357 358} 359 360package android.net.netstats.provider { 361 362 public abstract class NetworkStatsProvider { 363 ctor public NetworkStatsProvider(); 364 method public void notifyAlertReached(); 365 method public void notifyLimitReached(); 366 method public void notifyStatsUpdated(int, @NonNull android.net.NetworkStats, @NonNull android.net.NetworkStats); 367 method public void notifyWarningReached(); 368 method public abstract void onRequestStatsUpdate(int); 369 method public abstract void onSetAlert(long); 370 method public abstract void onSetLimit(@NonNull String, long); 371 method public void onSetWarningAndLimit(@NonNull String, long, long); 372 field public static final int QUOTA_UNLIMITED = -1; // 0xffffffff 373 } 374 375} 376 377