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 @FlaggedApi("com.android.nearby.flags.powered_off_finding") @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getPoweredOffFindingMode();
63    method public void queryOffloadCapability(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.nearby.OffloadCapability>);
64    method @FlaggedApi("com.android.nearby.flags.powered_off_finding") @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setPoweredOffFindingEphemeralIds(@NonNull java.util.List<byte[]>);
65    method @FlaggedApi("com.android.nearby.flags.powered_off_finding") @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setPoweredOffFindingMode(int);
66    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);
67    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);
68    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopBroadcast(@NonNull android.nearby.BroadcastCallback);
69    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopScan(@NonNull android.nearby.ScanCallback);
70    field @FlaggedApi("com.android.nearby.flags.powered_off_finding") public static final int POWERED_OFF_FINDING_MODE_DISABLED = 1; // 0x1
71    field @FlaggedApi("com.android.nearby.flags.powered_off_finding") public static final int POWERED_OFF_FINDING_MODE_ENABLED = 2; // 0x2
72    field @FlaggedApi("com.android.nearby.flags.powered_off_finding") public static final int POWERED_OFF_FINDING_MODE_UNSUPPORTED = 0; // 0x0
73  }
74
75  public final class OffloadCapability implements android.os.Parcelable {
76    method public int describeContents();
77    method public long getVersion();
78    method public boolean isFastPairSupported();
79    method public boolean isNearbyShareSupported();
80    method public void writeToParcel(@NonNull android.os.Parcel, int);
81    field @NonNull public static final android.os.Parcelable.Creator<android.nearby.OffloadCapability> CREATOR;
82  }
83
84  public static final class OffloadCapability.Builder {
85    ctor public OffloadCapability.Builder();
86    method @NonNull public android.nearby.OffloadCapability build();
87    method @NonNull public android.nearby.OffloadCapability.Builder setFastPairSupported(boolean);
88    method @NonNull public android.nearby.OffloadCapability.Builder setNearbyShareSupported(boolean);
89    method @NonNull public android.nearby.OffloadCapability.Builder setVersion(long);
90  }
91
92  public final class PresenceBroadcastRequest extends android.nearby.BroadcastRequest implements android.os.Parcelable {
93    method public int describeContents();
94    method @NonNull public java.util.List<java.lang.Integer> getActions();
95    method @NonNull public android.nearby.PrivateCredential getCredential();
96    method @NonNull public java.util.List<android.nearby.DataElement> getExtendedProperties();
97    method @NonNull public byte[] getSalt();
98    method public void writeToParcel(@NonNull android.os.Parcel, int);
99    field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PresenceBroadcastRequest> CREATOR;
100  }
101
102  public static final class PresenceBroadcastRequest.Builder {
103    ctor public PresenceBroadcastRequest.Builder(@NonNull java.util.List<java.lang.Integer>, @NonNull byte[], @NonNull android.nearby.PrivateCredential);
104    method @NonNull public android.nearby.PresenceBroadcastRequest.Builder addAction(@IntRange(from=1, to=255) int);
105    method @NonNull public android.nearby.PresenceBroadcastRequest.Builder addExtendedProperty(@NonNull android.nearby.DataElement);
106    method @NonNull public android.nearby.PresenceBroadcastRequest build();
107    method @NonNull public android.nearby.PresenceBroadcastRequest.Builder setTxPower(@IntRange(from=0xffffff81, to=126) int);
108    method @NonNull public android.nearby.PresenceBroadcastRequest.Builder setVersion(int);
109  }
110
111  public abstract class PresenceCredential {
112    method @NonNull public byte[] getAuthenticityKey();
113    method @NonNull public java.util.List<android.nearby.CredentialElement> getCredentialElements();
114    method public int getIdentityType();
115    method @NonNull public byte[] getSecretId();
116    method public int getType();
117    field public static final int CREDENTIAL_TYPE_PRIVATE = 0; // 0x0
118    field public static final int CREDENTIAL_TYPE_PUBLIC = 1; // 0x1
119    field public static final int IDENTITY_TYPE_PRIVATE = 1; // 0x1
120    field public static final int IDENTITY_TYPE_PROVISIONED = 2; // 0x2
121    field public static final int IDENTITY_TYPE_TRUSTED = 3; // 0x3
122    field public static final int IDENTITY_TYPE_UNKNOWN = 0; // 0x0
123  }
124
125  public final class PresenceDevice extends android.nearby.NearbyDevice implements android.os.Parcelable {
126    method public int describeContents();
127    method @NonNull public String getDeviceId();
128    method @Nullable public String getDeviceImageUrl();
129    method public int getDeviceType();
130    method public long getDiscoveryTimestampMillis();
131    method @NonNull public byte[] getEncryptedIdentity();
132    method @NonNull public java.util.List<android.nearby.DataElement> getExtendedProperties();
133    method @NonNull public byte[] getSalt();
134    method @NonNull public byte[] getSecretId();
135    method public void writeToParcel(@NonNull android.os.Parcel, int);
136    field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PresenceDevice> CREATOR;
137  }
138
139  public static final class PresenceDevice.Builder {
140    ctor public PresenceDevice.Builder(@NonNull String, @NonNull byte[], @NonNull byte[], @NonNull byte[]);
141    method @NonNull public android.nearby.PresenceDevice.Builder addExtendedProperty(@NonNull android.nearby.DataElement);
142    method @NonNull public android.nearby.PresenceDevice.Builder addMedium(int);
143    method @NonNull public android.nearby.PresenceDevice build();
144    method @NonNull public android.nearby.PresenceDevice.Builder setDeviceImageUrl(@Nullable String);
145    method @NonNull public android.nearby.PresenceDevice.Builder setDeviceType(int);
146    method @NonNull public android.nearby.PresenceDevice.Builder setDiscoveryTimestampMillis(long);
147    method @NonNull public android.nearby.PresenceDevice.Builder setName(@Nullable String);
148    method @NonNull public android.nearby.PresenceDevice.Builder setRssi(int);
149  }
150
151  public final class PresenceScanFilter extends android.nearby.ScanFilter implements android.os.Parcelable {
152    method public int describeContents();
153    method @NonNull public java.util.List<android.nearby.PublicCredential> getCredentials();
154    method @NonNull public java.util.List<android.nearby.DataElement> getExtendedProperties();
155    method @NonNull public java.util.List<java.lang.Integer> getPresenceActions();
156    method public void writeToParcel(@NonNull android.os.Parcel, int);
157    field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PresenceScanFilter> CREATOR;
158  }
159
160  public static final class PresenceScanFilter.Builder {
161    ctor public PresenceScanFilter.Builder();
162    method @NonNull public android.nearby.PresenceScanFilter.Builder addCredential(@NonNull android.nearby.PublicCredential);
163    method @NonNull public android.nearby.PresenceScanFilter.Builder addExtendedProperty(@NonNull android.nearby.DataElement);
164    method @NonNull public android.nearby.PresenceScanFilter.Builder addPresenceAction(@IntRange(from=1, to=255) int);
165    method @NonNull public android.nearby.PresenceScanFilter build();
166    method @NonNull public android.nearby.PresenceScanFilter.Builder setMaxPathLoss(@IntRange(from=0, to=127) int);
167  }
168
169  public final class PrivateCredential extends android.nearby.PresenceCredential implements android.os.Parcelable {
170    method public int describeContents();
171    method @NonNull public String getDeviceName();
172    method @NonNull public byte[] getMetadataEncryptionKey();
173    method public void writeToParcel(@NonNull android.os.Parcel, int);
174    field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PrivateCredential> CREATOR;
175  }
176
177  public static final class PrivateCredential.Builder {
178    ctor public PrivateCredential.Builder(@NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull String);
179    method @NonNull public android.nearby.PrivateCredential.Builder addCredentialElement(@NonNull android.nearby.CredentialElement);
180    method @NonNull public android.nearby.PrivateCredential build();
181    method @NonNull public android.nearby.PrivateCredential.Builder setIdentityType(int);
182  }
183
184  public final class PublicCredential extends android.nearby.PresenceCredential implements android.os.Parcelable {
185    method public int describeContents();
186    method @NonNull public byte[] getEncryptedMetadata();
187    method @NonNull public byte[] getEncryptedMetadataKeyTag();
188    method @NonNull public byte[] getPublicKey();
189    method public void writeToParcel(@NonNull android.os.Parcel, int);
190    field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PublicCredential> CREATOR;
191  }
192
193  public static final class PublicCredential.Builder {
194    ctor public PublicCredential.Builder(@NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull byte[]);
195    method @NonNull public android.nearby.PublicCredential.Builder addCredentialElement(@NonNull android.nearby.CredentialElement);
196    method @NonNull public android.nearby.PublicCredential build();
197    method @NonNull public android.nearby.PublicCredential.Builder setIdentityType(int);
198  }
199
200  public interface ScanCallback {
201    method public void onDiscovered(@NonNull android.nearby.NearbyDevice);
202    method public default void onError(int);
203    method public void onLost(@NonNull android.nearby.NearbyDevice);
204    method public void onUpdated(@NonNull android.nearby.NearbyDevice);
205    field public static final int ERROR_INVALID_ARGUMENT = 2; // 0x2
206    field public static final int ERROR_PERMISSION_DENIED = 3; // 0x3
207    field public static final int ERROR_RESOURCE_EXHAUSTED = 4; // 0x4
208    field public static final int ERROR_UNKNOWN = 0; // 0x0
209    field public static final int ERROR_UNSUPPORTED = 1; // 0x1
210  }
211
212  public abstract class ScanFilter {
213    method @IntRange(from=0, to=127) public int getMaxPathLoss();
214    method public int getType();
215  }
216
217  public final class ScanRequest implements android.os.Parcelable {
218    method public int describeContents();
219    method @NonNull public java.util.List<android.nearby.ScanFilter> getScanFilters();
220    method public int getScanMode();
221    method public int getScanType();
222    method @NonNull public android.os.WorkSource getWorkSource();
223    method public boolean isBleEnabled();
224    method public boolean isOffloadOnly();
225    method public static boolean isValidScanMode(int);
226    method public static boolean isValidScanType(int);
227    method @NonNull public static String scanModeToString(int);
228    method public void writeToParcel(@NonNull android.os.Parcel, int);
229    field @NonNull public static final android.os.Parcelable.Creator<android.nearby.ScanRequest> CREATOR;
230    field public static final int SCAN_MODE_BALANCED = 1; // 0x1
231    field public static final int SCAN_MODE_LOW_LATENCY = 2; // 0x2
232    field public static final int SCAN_MODE_LOW_POWER = 0; // 0x0
233    field public static final int SCAN_MODE_NO_POWER = -1; // 0xffffffff
234    field public static final int SCAN_TYPE_FAST_PAIR = 1; // 0x1
235    field public static final int SCAN_TYPE_NEARBY_PRESENCE = 2; // 0x2
236  }
237
238  public static final class ScanRequest.Builder {
239    ctor public ScanRequest.Builder();
240    method @NonNull public android.nearby.ScanRequest.Builder addScanFilter(@NonNull android.nearby.ScanFilter);
241    method @NonNull public android.nearby.ScanRequest build();
242    method @NonNull public android.nearby.ScanRequest.Builder setBleEnabled(boolean);
243    method @NonNull public android.nearby.ScanRequest.Builder setOffloadOnly(boolean);
244    method @NonNull public android.nearby.ScanRequest.Builder setScanMode(int);
245    method @NonNull public android.nearby.ScanRequest.Builder setScanType(int);
246    method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.nearby.ScanRequest.Builder setWorkSource(@Nullable android.os.WorkSource);
247  }
248
249}
250
251package android.net {
252
253  public class EthernetManager {
254    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>);
255    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>);
256    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);
257    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>);
258  }
259
260  public static interface EthernetManager.TetheredInterfaceCallback {
261    method public void onAvailable(@NonNull String);
262    method public void onUnavailable();
263  }
264
265  public static class EthernetManager.TetheredInterfaceRequest {
266    method public void release();
267  }
268
269  public final class EthernetNetworkManagementException extends java.lang.RuntimeException implements android.os.Parcelable {
270    ctor public EthernetNetworkManagementException(@NonNull String);
271    method public int describeContents();
272    method public void writeToParcel(@NonNull android.os.Parcel, int);
273    field @NonNull public static final android.os.Parcelable.Creator<android.net.EthernetNetworkManagementException> CREATOR;
274  }
275
276  public final class EthernetNetworkUpdateRequest implements android.os.Parcelable {
277    method public int describeContents();
278    method @Nullable public android.net.IpConfiguration getIpConfiguration();
279    method @Nullable public android.net.NetworkCapabilities getNetworkCapabilities();
280    method public void writeToParcel(@NonNull android.os.Parcel, int);
281    field @NonNull public static final android.os.Parcelable.Creator<android.net.EthernetNetworkUpdateRequest> CREATOR;
282  }
283
284  public static final class EthernetNetworkUpdateRequest.Builder {
285    ctor public EthernetNetworkUpdateRequest.Builder();
286    ctor public EthernetNetworkUpdateRequest.Builder(@NonNull android.net.EthernetNetworkUpdateRequest);
287    method @NonNull public android.net.EthernetNetworkUpdateRequest build();
288    method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setIpConfiguration(@Nullable android.net.IpConfiguration);
289    method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setNetworkCapabilities(@Nullable android.net.NetworkCapabilities);
290  }
291
292  public class IpSecManager {
293    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;
294    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;
295    method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void startTunnelModeTransformMigration(@NonNull android.net.IpSecTransform, @NonNull java.net.InetAddress, @NonNull java.net.InetAddress);
296  }
297
298  public static final class IpSecManager.IpSecTunnelInterface implements java.lang.AutoCloseable {
299    method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void addAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException;
300    method public void close();
301    method @NonNull public String getInterfaceName();
302    method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void removeAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException;
303    method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void setUnderlyingNetwork(@NonNull android.net.Network) throws java.io.IOException;
304  }
305
306  public static class IpSecTransform.Builder {
307    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;
308  }
309
310  public final class NetworkStats implements java.lang.Iterable<android.net.NetworkStats.Entry> android.os.Parcelable {
311    ctor public NetworkStats(long, int);
312    method @NonNull public android.net.NetworkStats add(@NonNull android.net.NetworkStats);
313    method @FlaggedApi("com.android.net.flags.netstats_add_entries") @NonNull public android.net.NetworkStats addEntries(@NonNull java.util.List<android.net.NetworkStats.Entry>);
314    method @NonNull public android.net.NetworkStats addEntry(@NonNull android.net.NetworkStats.Entry);
315    method public android.net.NetworkStats clone();
316    method public int describeContents();
317    method @NonNull public java.util.Iterator<android.net.NetworkStats.Entry> iterator();
318    method @NonNull public android.net.NetworkStats subtract(@NonNull android.net.NetworkStats);
319    method public void writeToParcel(@NonNull android.os.Parcel, int);
320    field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStats> CREATOR;
321    field public static final int DEFAULT_NETWORK_ALL = -1; // 0xffffffff
322    field public static final int DEFAULT_NETWORK_NO = 0; // 0x0
323    field public static final int DEFAULT_NETWORK_YES = 1; // 0x1
324    field public static final String IFACE_VT = "vt_data0";
325    field public static final int METERED_ALL = -1; // 0xffffffff
326    field public static final int METERED_NO = 0; // 0x0
327    field public static final int METERED_YES = 1; // 0x1
328    field public static final int ROAMING_ALL = -1; // 0xffffffff
329    field public static final int ROAMING_NO = 0; // 0x0
330    field public static final int ROAMING_YES = 1; // 0x1
331    field public static final int SET_ALL = -1; // 0xffffffff
332    field public static final int SET_DEFAULT = 0; // 0x0
333    field public static final int SET_FOREGROUND = 1; // 0x1
334    field public static final int TAG_NONE = 0; // 0x0
335    field public static final int UID_ALL = -1; // 0xffffffff
336    field public static final int UID_TETHERING = -5; // 0xfffffffb
337  }
338
339  public static class NetworkStats.Entry {
340    ctor public NetworkStats.Entry(@Nullable String, int, int, int, int, int, int, long, long, long, long, long);
341    method public int getDefaultNetwork();
342    method public int getMetered();
343    method public long getOperations();
344    method public int getRoaming();
345    method public long getRxBytes();
346    method public long getRxPackets();
347    method public int getSet();
348    method public int getTag();
349    method public long getTxBytes();
350    method public long getTxPackets();
351    method public int getUid();
352  }
353
354  public class TrafficStats {
355    method public static void setThreadStatsTagApp();
356    method public static void setThreadStatsTagBackup();
357    method public static void setThreadStatsTagRestore();
358    field public static final int TAG_NETWORK_STACK_IMPERSONATION_RANGE_END = -113; // 0xffffff8f
359    field public static final int TAG_NETWORK_STACK_IMPERSONATION_RANGE_START = -128; // 0xffffff80
360    field public static final int TAG_NETWORK_STACK_RANGE_END = -257; // 0xfffffeff
361    field public static final int TAG_NETWORK_STACK_RANGE_START = -768; // 0xfffffd00
362    field public static final int TAG_SYSTEM_IMPERSONATION_RANGE_END = -241; // 0xffffff0f
363    field public static final int TAG_SYSTEM_IMPERSONATION_RANGE_START = -256; // 0xffffff00
364  }
365
366}
367
368package android.net.netstats.provider {
369
370  public abstract class NetworkStatsProvider {
371    ctor public NetworkStatsProvider();
372    method public void notifyAlertReached();
373    method public void notifyLimitReached();
374    method public void notifyStatsUpdated(int, @NonNull android.net.NetworkStats, @NonNull android.net.NetworkStats);
375    method public void notifyWarningReached();
376    method public abstract void onRequestStatsUpdate(int);
377    method public abstract void onSetAlert(long);
378    method public abstract void onSetLimit(@NonNull String, long);
379    method public void onSetWarningAndLimit(@NonNull String, long, long);
380    field public static final int QUOTA_UNLIMITED = -1; // 0xffffffff
381  }
382
383}
384
385package android.net.nsd {
386
387  public final class NsdManager {
388    method @FlaggedApi("com.android.net.flags.register_nsd_offload_engine_api") @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void registerOffloadEngine(@NonNull String, long, long, @NonNull java.util.concurrent.Executor, @NonNull android.net.nsd.OffloadEngine);
389    method @FlaggedApi("com.android.net.flags.register_nsd_offload_engine_api") @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void unregisterOffloadEngine(@NonNull android.net.nsd.OffloadEngine);
390  }
391
392  @FlaggedApi("com.android.net.flags.register_nsd_offload_engine_api") public interface OffloadEngine {
393    method public void onOffloadServiceRemoved(@NonNull android.net.nsd.OffloadServiceInfo);
394    method public void onOffloadServiceUpdated(@NonNull android.net.nsd.OffloadServiceInfo);
395    field public static final int OFFLOAD_CAPABILITY_BYPASS_MULTICAST_LOCK = 1; // 0x1
396    field public static final int OFFLOAD_TYPE_FILTER_QUERIES = 2; // 0x2
397    field public static final int OFFLOAD_TYPE_FILTER_REPLIES = 4; // 0x4
398    field public static final int OFFLOAD_TYPE_REPLY = 1; // 0x1
399  }
400
401  @FlaggedApi("com.android.net.flags.register_nsd_offload_engine_api") public final class OffloadServiceInfo implements android.os.Parcelable {
402    ctor public OffloadServiceInfo(@NonNull android.net.nsd.OffloadServiceInfo.Key, @NonNull java.util.List<java.lang.String>, @NonNull String, @Nullable byte[], @IntRange(from=0, to=java.lang.Integer.MAX_VALUE) int, long);
403    method public int describeContents();
404    method @NonNull public String getHostname();
405    method @NonNull public android.net.nsd.OffloadServiceInfo.Key getKey();
406    method @Nullable public byte[] getOffloadPayload();
407    method public long getOffloadType();
408    method public int getPriority();
409    method @NonNull public java.util.List<java.lang.String> getSubtypes();
410    method public void writeToParcel(@NonNull android.os.Parcel, int);
411    field @NonNull public static final android.os.Parcelable.Creator<android.net.nsd.OffloadServiceInfo> CREATOR;
412  }
413
414  public static final class OffloadServiceInfo.Key implements android.os.Parcelable {
415    ctor public OffloadServiceInfo.Key(@NonNull String, @NonNull String);
416    method public int describeContents();
417    method @NonNull public String getServiceName();
418    method @NonNull public String getServiceType();
419    method public void writeToParcel(@NonNull android.os.Parcel, int);
420    field @NonNull public static final android.os.Parcelable.Creator<android.net.nsd.OffloadServiceInfo.Key> CREATOR;
421  }
422
423}
424
425package android.net.thread {
426
427  @FlaggedApi("com.android.net.thread.flags.thread_enabled") public final class ActiveOperationalDataset implements android.os.Parcelable {
428    method public int describeContents();
429    method @NonNull public static android.net.thread.ActiveOperationalDataset fromThreadTlvs(@NonNull byte[]);
430    method @NonNull public android.net.thread.OperationalDatasetTimestamp getActiveTimestamp();
431    method @IntRange(from=0, to=65535) public int getChannel();
432    method @NonNull @Size(min=1) public android.util.SparseArray<byte[]> getChannelMask();
433    method @IntRange(from=0, to=255) public int getChannelPage();
434    method @NonNull @Size(android.net.thread.ActiveOperationalDataset.LENGTH_EXTENDED_PAN_ID) public byte[] getExtendedPanId();
435    method @NonNull public android.net.IpPrefix getMeshLocalPrefix();
436    method @NonNull @Size(android.net.thread.ActiveOperationalDataset.LENGTH_NETWORK_KEY) public byte[] getNetworkKey();
437    method @NonNull @Size(min=android.net.thread.ActiveOperationalDataset.LENGTH_MIN_NETWORK_NAME_BYTES, max=android.net.thread.ActiveOperationalDataset.LENGTH_MAX_NETWORK_NAME_BYTES) public String getNetworkName();
438    method @IntRange(from=0, to=65534) public int getPanId();
439    method @NonNull @Size(android.net.thread.ActiveOperationalDataset.LENGTH_PSKC) public byte[] getPskc();
440    method @NonNull public android.net.thread.ActiveOperationalDataset.SecurityPolicy getSecurityPolicy();
441    method @NonNull public byte[] toThreadTlvs();
442    method public void writeToParcel(@NonNull android.os.Parcel, int);
443    field public static final int CHANNEL_MAX_24_GHZ = 26; // 0x1a
444    field public static final int CHANNEL_MIN_24_GHZ = 11; // 0xb
445    field public static final int CHANNEL_PAGE_24_GHZ = 0; // 0x0
446    field @NonNull public static final android.os.Parcelable.Creator<android.net.thread.ActiveOperationalDataset> CREATOR;
447    field public static final int LENGTH_EXTENDED_PAN_ID = 8; // 0x8
448    field public static final int LENGTH_MAX_DATASET_TLVS = 254; // 0xfe
449    field public static final int LENGTH_MAX_NETWORK_NAME_BYTES = 16; // 0x10
450    field public static final int LENGTH_MESH_LOCAL_PREFIX_BITS = 64; // 0x40
451    field public static final int LENGTH_MIN_NETWORK_NAME_BYTES = 1; // 0x1
452    field public static final int LENGTH_NETWORK_KEY = 16; // 0x10
453    field public static final int LENGTH_PSKC = 16; // 0x10
454  }
455
456  public static final class ActiveOperationalDataset.Builder {
457    ctor public ActiveOperationalDataset.Builder(@NonNull android.net.thread.ActiveOperationalDataset);
458    ctor public ActiveOperationalDataset.Builder();
459    method @NonNull public android.net.thread.ActiveOperationalDataset build();
460    method @NonNull public android.net.thread.ActiveOperationalDataset.Builder setActiveTimestamp(@NonNull android.net.thread.OperationalDatasetTimestamp);
461    method @NonNull public android.net.thread.ActiveOperationalDataset.Builder setChannel(@IntRange(from=0, to=255) int, @IntRange(from=0, to=65535) int);
462    method @NonNull public android.net.thread.ActiveOperationalDataset.Builder setChannelMask(@NonNull @Size(min=1) android.util.SparseArray<byte[]>);
463    method @NonNull public android.net.thread.ActiveOperationalDataset.Builder setExtendedPanId(@NonNull @Size(android.net.thread.ActiveOperationalDataset.LENGTH_EXTENDED_PAN_ID) byte[]);
464    method @NonNull public android.net.thread.ActiveOperationalDataset.Builder setMeshLocalPrefix(@NonNull android.net.IpPrefix);
465    method @NonNull public android.net.thread.ActiveOperationalDataset.Builder setNetworkKey(@NonNull @Size(android.net.thread.ActiveOperationalDataset.LENGTH_NETWORK_KEY) byte[]);
466    method @NonNull public android.net.thread.ActiveOperationalDataset.Builder setNetworkName(@NonNull @Size(min=android.net.thread.ActiveOperationalDataset.LENGTH_MIN_NETWORK_NAME_BYTES, max=android.net.thread.ActiveOperationalDataset.LENGTH_MAX_NETWORK_NAME_BYTES) String);
467    method @NonNull public android.net.thread.ActiveOperationalDataset.Builder setPanId(@IntRange(from=0, to=65534) int);
468    method @NonNull public android.net.thread.ActiveOperationalDataset.Builder setPskc(@NonNull @Size(android.net.thread.ActiveOperationalDataset.LENGTH_PSKC) byte[]);
469    method @NonNull public android.net.thread.ActiveOperationalDataset.Builder setSecurityPolicy(@NonNull android.net.thread.ActiveOperationalDataset.SecurityPolicy);
470  }
471
472  public static final class ActiveOperationalDataset.SecurityPolicy {
473    ctor public ActiveOperationalDataset.SecurityPolicy(@IntRange(from=1, to=65535) int, @NonNull @Size(min=android.net.thread.ActiveOperationalDataset.SecurityPolicy.LENGTH_MIN_SECURITY_POLICY_FLAGS) byte[]);
474    method @NonNull @Size(min=android.net.thread.ActiveOperationalDataset.SecurityPolicy.LENGTH_MIN_SECURITY_POLICY_FLAGS) public byte[] getFlags();
475    method @IntRange(from=1, to=65535) public int getRotationTimeHours();
476    field public static final int DEFAULT_ROTATION_TIME_HOURS = 672; // 0x2a0
477    field public static final int LENGTH_MIN_SECURITY_POLICY_FLAGS = 1; // 0x1
478  }
479
480  @FlaggedApi("com.android.net.thread.flags.thread_enabled") public final class OperationalDatasetTimestamp {
481    ctor public OperationalDatasetTimestamp(@IntRange(from=0, to=281474976710655L) long, @IntRange(from=0, to=32767) int, boolean);
482    method @NonNull public static android.net.thread.OperationalDatasetTimestamp fromInstant(@NonNull java.time.Instant);
483    method @IntRange(from=0, to=281474976710655L) public long getSeconds();
484    method @IntRange(from=0, to=32767) public int getTicks();
485    method public boolean isAuthoritativeSource();
486    method @NonNull public java.time.Instant toInstant();
487  }
488
489  @FlaggedApi("com.android.net.thread.flags.thread_enabled") public final class PendingOperationalDataset implements android.os.Parcelable {
490    ctor public PendingOperationalDataset(@NonNull android.net.thread.ActiveOperationalDataset, @NonNull android.net.thread.OperationalDatasetTimestamp, @NonNull java.time.Duration);
491    method public int describeContents();
492    method @NonNull public static android.net.thread.PendingOperationalDataset fromThreadTlvs(@NonNull byte[]);
493    method @NonNull public android.net.thread.ActiveOperationalDataset getActiveOperationalDataset();
494    method @NonNull public java.time.Duration getDelayTimer();
495    method @NonNull public android.net.thread.OperationalDatasetTimestamp getPendingTimestamp();
496    method @NonNull public byte[] toThreadTlvs();
497    method public void writeToParcel(@NonNull android.os.Parcel, int);
498    field @NonNull public static final android.os.Parcelable.Creator<android.net.thread.PendingOperationalDataset> CREATOR;
499  }
500
501  @FlaggedApi("com.android.net.thread.flags.configuration_enabled") public final class ThreadConfiguration implements android.os.Parcelable {
502    method public int describeContents();
503    method public boolean isNat64Enabled();
504    method public void writeToParcel(@NonNull android.os.Parcel, int);
505    field @NonNull public static final android.os.Parcelable.Creator<android.net.thread.ThreadConfiguration> CREATOR;
506  }
507
508  @FlaggedApi("com.android.net.thread.flags.set_nat64_configuration_enabled") public static final class ThreadConfiguration.Builder {
509    ctor @FlaggedApi("com.android.net.thread.flags.set_nat64_configuration_enabled") public ThreadConfiguration.Builder();
510    ctor @FlaggedApi("com.android.net.thread.flags.set_nat64_configuration_enabled") public ThreadConfiguration.Builder(@NonNull android.net.thread.ThreadConfiguration);
511    method @FlaggedApi("com.android.net.thread.flags.set_nat64_configuration_enabled") @NonNull public android.net.thread.ThreadConfiguration build();
512    method @FlaggedApi("com.android.net.thread.flags.set_nat64_configuration_enabled") @NonNull public android.net.thread.ThreadConfiguration.Builder setNat64Enabled(boolean);
513  }
514
515  @FlaggedApi("com.android.net.thread.flags.thread_enabled") public final class ThreadNetworkController {
516    method @FlaggedApi("com.android.net.thread.flags.epskc_enabled") @RequiresPermission("android.permission.THREAD_NETWORK_PRIVILEGED") public void activateEphemeralKeyMode(@NonNull java.time.Duration, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.net.thread.ThreadNetworkException>);
517    method public void createRandomizedDataset(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.net.thread.ActiveOperationalDataset,android.net.thread.ThreadNetworkException>);
518    method @FlaggedApi("com.android.net.thread.flags.epskc_enabled") @RequiresPermission("android.permission.THREAD_NETWORK_PRIVILEGED") public void deactivateEphemeralKeyMode(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.net.thread.ThreadNetworkException>);
519    method @FlaggedApi("com.android.net.thread.flags.epskc_enabled") @NonNull public java.time.Duration getMaxEphemeralKeyLifetime();
520    method public int getThreadVersion();
521    method public static boolean isAttached(int);
522    method @RequiresPermission("android.permission.THREAD_NETWORK_PRIVILEGED") public void join(@NonNull android.net.thread.ActiveOperationalDataset, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.net.thread.ThreadNetworkException>);
523    method @RequiresPermission("android.permission.THREAD_NETWORK_PRIVILEGED") public void leave(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.net.thread.ThreadNetworkException>);
524    method @FlaggedApi("com.android.net.thread.flags.configuration_enabled") @RequiresPermission(android.Manifest.permission.THREAD_NETWORK_PRIVILEGED) public void registerConfigurationCallback(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.net.thread.ThreadConfiguration>);
525    method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_NETWORK_STATE, "android.permission.THREAD_NETWORK_PRIVILEGED"}) public void registerOperationalDatasetCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.thread.ThreadNetworkController.OperationalDatasetCallback);
526    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.thread.ThreadNetworkController.StateCallback);
527    method @RequiresPermission("android.permission.THREAD_NETWORK_PRIVILEGED") public void scheduleMigration(@NonNull android.net.thread.PendingOperationalDataset, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.net.thread.ThreadNetworkException>);
528    method @FlaggedApi("com.android.net.thread.flags.channel_max_powers_enabled") @RequiresPermission("android.permission.THREAD_NETWORK_PRIVILEGED") public void setChannelMaxPowers(@NonNull @Size(min=1) android.util.SparseIntArray, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.net.thread.ThreadNetworkException>);
529    method @FlaggedApi("com.android.net.thread.flags.set_nat64_configuration_enabled") @RequiresPermission(android.Manifest.permission.THREAD_NETWORK_PRIVILEGED) public void setConfiguration(@NonNull android.net.thread.ThreadConfiguration, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.net.thread.ThreadNetworkException>);
530    method @RequiresPermission("android.permission.THREAD_NETWORK_PRIVILEGED") public void setEnabled(boolean, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.net.thread.ThreadNetworkException>);
531    method @FlaggedApi("com.android.net.thread.flags.configuration_enabled") @RequiresPermission(android.Manifest.permission.THREAD_NETWORK_PRIVILEGED) public void unregisterConfigurationCallback(@NonNull java.util.function.Consumer<android.net.thread.ThreadConfiguration>);
532    method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_NETWORK_STATE, "android.permission.THREAD_NETWORK_PRIVILEGED"}) public void unregisterOperationalDatasetCallback(@NonNull android.net.thread.ThreadNetworkController.OperationalDatasetCallback);
533    method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void unregisterStateCallback(@NonNull android.net.thread.ThreadNetworkController.StateCallback);
534    field public static final int DEVICE_ROLE_CHILD = 2; // 0x2
535    field public static final int DEVICE_ROLE_DETACHED = 1; // 0x1
536    field public static final int DEVICE_ROLE_LEADER = 4; // 0x4
537    field public static final int DEVICE_ROLE_ROUTER = 3; // 0x3
538    field public static final int DEVICE_ROLE_STOPPED = 0; // 0x0
539    field @FlaggedApi("com.android.net.thread.flags.epskc_enabled") public static final int EPHEMERAL_KEY_DISABLED = 0; // 0x0
540    field @FlaggedApi("com.android.net.thread.flags.epskc_enabled") public static final int EPHEMERAL_KEY_ENABLED = 1; // 0x1
541    field @FlaggedApi("com.android.net.thread.flags.epskc_enabled") public static final int EPHEMERAL_KEY_IN_USE = 2; // 0x2
542    field public static final int MAX_POWER_CHANNEL_DISABLED = -2147483648; // 0x80000000
543    field public static final int STATE_DISABLED = 0; // 0x0
544    field public static final int STATE_DISABLING = 2; // 0x2
545    field public static final int STATE_ENABLED = 1; // 0x1
546    field public static final int THREAD_VERSION_1_3 = 4; // 0x4
547  }
548
549  public static interface ThreadNetworkController.OperationalDatasetCallback {
550    method public void onActiveOperationalDatasetChanged(@Nullable android.net.thread.ActiveOperationalDataset);
551    method public default void onPendingOperationalDatasetChanged(@Nullable android.net.thread.PendingOperationalDataset);
552  }
553
554  public static interface ThreadNetworkController.StateCallback {
555    method public void onDeviceRoleChanged(int);
556    method @FlaggedApi("com.android.net.thread.flags.epskc_enabled") @RequiresPermission("android.permission.THREAD_NETWORK_PRIVILEGED") public default void onEphemeralKeyStateChanged(int, @Nullable String, @Nullable java.time.Instant);
557    method public default void onPartitionIdChanged(long);
558    method public default void onThreadEnableStateChanged(int);
559  }
560
561  @FlaggedApi("com.android.net.thread.flags.thread_enabled") public class ThreadNetworkException extends java.lang.Exception {
562    ctor public ThreadNetworkException(int, @NonNull String);
563    method public int getErrorCode();
564    field public static final int ERROR_ABORTED = 2; // 0x2
565    field public static final int ERROR_BUSY = 5; // 0x5
566    field public static final int ERROR_FAILED_PRECONDITION = 6; // 0x6
567    field public static final int ERROR_INTERNAL_ERROR = 1; // 0x1
568    field public static final int ERROR_REJECTED_BY_PEER = 8; // 0x8
569    field public static final int ERROR_RESOURCE_EXHAUSTED = 10; // 0xa
570    field public static final int ERROR_RESPONSE_BAD_FORMAT = 9; // 0x9
571    field public static final int ERROR_THREAD_DISABLED = 12; // 0xc
572    field public static final int ERROR_TIMEOUT = 3; // 0x3
573    field public static final int ERROR_UNAVAILABLE = 4; // 0x4
574    field public static final int ERROR_UNKNOWN = 11; // 0xb
575    field public static final int ERROR_UNSUPPORTED_CHANNEL = 7; // 0x7
576    field public static final int ERROR_UNSUPPORTED_FEATURE = 13; // 0xd
577  }
578
579  @FlaggedApi("com.android.net.thread.flags.thread_enabled") public final class ThreadNetworkManager {
580    method @NonNull public java.util.List<android.net.thread.ThreadNetworkController> getAllThreadNetworkControllers();
581  }
582
583}
584
585