blob: c59fb68543ceca45ecd59c074315ed3e43c513d3 [file] [log] [blame]
paulhu667e8fb2021-12-14 01:30:22 +00001// Signature format: 2.0
Junyu Lai2ef865e2022-01-17 11:52:57 +00002package android.app.usage {
3
4 public class NetworkStatsManager {
junyulaib59e5422022-03-01 17:08:01 +08005 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);
Junyu Lai2ef865e2022-01-17 11:52:57 +00007 }
8
9}
10
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +090011package android.nearby {
12
Wei Wangb15b5a82022-02-01 17:08:08 -080013 public interface BroadcastCallback {
Wei Wang88c48442022-03-05 12:14:12 -080014 method public void onStatusChanged(int);
Wei Wangb15b5a82022-02-01 17:08:08 -080015 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
Wei Wang24e2cb22022-03-12 12:15:34 -080022 public abstract class BroadcastRequest {
Wei Wangb15b5a82022-02-01 17:08:08 -080023 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();
Wei Wangb15b5a82022-02-01 17:08:08 -080027 field public static final int BROADCAST_TYPE_NEARBY_PRESENCE = 3; // 0x3
Wei Wang88c48442022-03-05 12:14:12 -080028 field public static final int BROADCAST_TYPE_UNKNOWN = -1; // 0xffffffff
Wei Wangf5bb26f2022-03-25 10:30:06 -070029 field public static final int MEDIUM_BLE = 1; // 0x1
Wei Wang88c48442022-03-05 12:14:12 -080030 field public static final int PRESENCE_VERSION_UNKNOWN = -1; // 0xffffffff
Wei Wangb15b5a82022-02-01 17:08:08 -080031 field public static final int PRESENCE_VERSION_V0 = 0; // 0x0
32 field public static final int PRESENCE_VERSION_V1 = 1; // 0x1
Wei Wang88c48442022-03-05 12:14:12 -080033 field public static final int UNKNOWN_TX_POWER = -127; // 0xffffff81
Wei Wangb15b5a82022-02-01 17:08:08 -080034 }
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
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +090054 public class FastPairAccountKeyDeviceMetadata {
Chun Zhangd9d12aa2022-03-15 00:43:53 -070055 method @Nullable public byte[] getDeviceAccountKey();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +090056 method @Nullable public android.nearby.FastPairDeviceMetadata getFastPairDeviceMetadata();
57 method @Nullable public android.nearby.FastPairDiscoveryItem getFastPairDiscoveryItem();
Chun Zhangd9d12aa2022-03-15 00:43:53 -070058 method @Nullable public byte[] getSha256DeviceAccountKeyPublicAddress();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +090059 }
60
61 public static final class FastPairAccountKeyDeviceMetadata.Builder {
62 ctor public FastPairAccountKeyDeviceMetadata.Builder();
63 method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata build();
Chun Zhangd9d12aa2022-03-15 00:43:53 -070064 method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata.Builder setDeviceAccountKey(@Nullable byte[]);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +090065 method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata.Builder setFastPairDeviceMetadata(@Nullable android.nearby.FastPairDeviceMetadata);
66 method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata.Builder setFastPairDiscoveryItem(@Nullable android.nearby.FastPairDiscoveryItem);
Chun Zhangd9d12aa2022-03-15 00:43:53 -070067 method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata.Builder setSha256DeviceAccountKeyPublicAddress(@Nullable byte[]);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +090068 }
69
Chun Zhangee379fd2022-03-09 11:18:20 -080070 public class FastPairAntispoofKeyDeviceMetadata {
Chun Zhangd9d12aa2022-03-15 00:43:53 -070071 method @Nullable public byte[] getAntispoofPublicKey();
72 method @Nullable public android.nearby.FastPairDeviceMetadata getFastPairDeviceMetadata();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +090073 }
74
Chun Zhangee379fd2022-03-09 11:18:20 -080075 public static final class FastPairAntispoofKeyDeviceMetadata.Builder {
76 ctor public FastPairAntispoofKeyDeviceMetadata.Builder();
77 method @NonNull public android.nearby.FastPairAntispoofKeyDeviceMetadata build();
Chun Zhangd9d12aa2022-03-15 00:43:53 -070078 method @NonNull public android.nearby.FastPairAntispoofKeyDeviceMetadata.Builder setAntispoofPublicKey(@Nullable byte[]);
Chun Zhangee379fd2022-03-09 11:18:20 -080079 method @NonNull public android.nearby.FastPairAntispoofKeyDeviceMetadata.Builder setFastPairDeviceMetadata(@Nullable android.nearby.FastPairDeviceMetadata);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +090080 }
81
Chun Zhangfa9c46a2022-03-17 12:12:27 -070082 public abstract class FastPairDataProviderService extends android.app.Service {
83 ctor public FastPairDataProviderService(@NonNull String);
84 method @NonNull public final android.os.IBinder onBind(@NonNull android.content.Intent);
85 method public abstract void onLoadFastPairAccountDevicesMetadata(@NonNull android.nearby.FastPairDataProviderService.FastPairAccountDevicesMetadataRequest, @NonNull android.nearby.FastPairDataProviderService.FastPairAccountDevicesMetadataCallback);
86 method public abstract void onLoadFastPairAntispoofKeyDeviceMetadata(@NonNull android.nearby.FastPairDataProviderService.FastPairAntispoofKeyDeviceMetadataRequest, @NonNull android.nearby.FastPairDataProviderService.FastPairAntispoofKeyDeviceMetadataCallback);
87 method public abstract void onLoadFastPairEligibleAccounts(@NonNull android.nearby.FastPairDataProviderService.FastPairEligibleAccountsRequest, @NonNull android.nearby.FastPairDataProviderService.FastPairEligibleAccountsCallback);
88 method public abstract void onManageFastPairAccount(@NonNull android.nearby.FastPairDataProviderService.FastPairManageAccountRequest, @NonNull android.nearby.FastPairDataProviderService.FastPairManageActionCallback);
89 method public abstract void onManageFastPairAccountDevice(@NonNull android.nearby.FastPairDataProviderService.FastPairManageAccountDeviceRequest, @NonNull android.nearby.FastPairDataProviderService.FastPairManageActionCallback);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +090090 field public static final String ACTION_FAST_PAIR_DATA_PROVIDER = "android.nearby.action.FAST_PAIR_DATA_PROVIDER";
91 field public static final int ERROR_CODE_BAD_REQUEST = 0; // 0x0
92 field public static final int ERROR_CODE_INTERNAL_ERROR = 1; // 0x1
93 field public static final int MANAGE_REQUEST_ADD = 0; // 0x0
94 field public static final int MANAGE_REQUEST_REMOVE = 1; // 0x1
95 }
96
Chun Zhangfa9c46a2022-03-17 12:12:27 -070097 public static interface FastPairDataProviderService.FastPairAccountDevicesMetadataCallback {
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +090098 method public void onError(int, @Nullable String);
99 method public void onFastPairAccountDevicesMetadataReceived(@NonNull java.util.Collection<android.nearby.FastPairAccountKeyDeviceMetadata>);
100 }
101
Chun Zhangfa9c46a2022-03-17 12:12:27 -0700102 public static class FastPairDataProviderService.FastPairAccountDevicesMetadataRequest {
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900103 method @NonNull public android.accounts.Account getAccount();
Chun Zhangd9d12aa2022-03-15 00:43:53 -0700104 method @NonNull public java.util.Collection<byte[]> getDeviceAccountKeys();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900105 }
106
Chun Zhangfa9c46a2022-03-17 12:12:27 -0700107 public static interface FastPairDataProviderService.FastPairAntispoofKeyDeviceMetadataCallback {
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900108 method public void onError(int, @Nullable String);
Chun Zhangee379fd2022-03-09 11:18:20 -0800109 method public void onFastPairAntispoofKeyDeviceMetadataReceived(@NonNull android.nearby.FastPairAntispoofKeyDeviceMetadata);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900110 }
111
Chun Zhangfa9c46a2022-03-17 12:12:27 -0700112 public static class FastPairDataProviderService.FastPairAntispoofKeyDeviceMetadataRequest {
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900113 method @NonNull public byte[] getModelId();
114 }
115
Chun Zhangfa9c46a2022-03-17 12:12:27 -0700116 public static interface FastPairDataProviderService.FastPairEligibleAccountsCallback {
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900117 method public void onError(int, @Nullable String);
118 method public void onFastPairEligibleAccountsReceived(@NonNull java.util.Collection<android.nearby.FastPairEligibleAccount>);
119 }
120
Chun Zhangfa9c46a2022-03-17 12:12:27 -0700121 public static class FastPairDataProviderService.FastPairEligibleAccountsRequest {
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900122 }
123
Chun Zhangfa9c46a2022-03-17 12:12:27 -0700124 public static class FastPairDataProviderService.FastPairManageAccountDeviceRequest {
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900125 method @NonNull public android.accounts.Account getAccount();
126 method @NonNull public android.nearby.FastPairAccountKeyDeviceMetadata getAccountKeyDeviceMetadata();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900127 method public int getRequestType();
128 }
129
Chun Zhangfa9c46a2022-03-17 12:12:27 -0700130 public static class FastPairDataProviderService.FastPairManageAccountRequest {
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900131 method @NonNull public android.accounts.Account getAccount();
132 method public int getRequestType();
133 }
134
Chun Zhangfa9c46a2022-03-17 12:12:27 -0700135 public static interface FastPairDataProviderService.FastPairManageActionCallback {
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900136 method public void onError(int, @Nullable String);
137 method public void onSuccess();
138 }
139
140 public class FastPairDeviceMetadata {
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900141 method public int getBleTxPower();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900142 method @Nullable public String getConnectSuccessCompanionAppInstalled();
143 method @Nullable public String getConnectSuccessCompanionAppNotInstalled();
144 method public int getDeviceType();
145 method @Nullable public String getDownloadCompanionAppDescription();
146 method @Nullable public String getFailConnectGoToSettingsDescription();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900147 method @Nullable public byte[] getImage();
148 method @Nullable public String getImageUrl();
149 method @Nullable public String getInitialNotificationDescription();
150 method @Nullable public String getInitialNotificationDescriptionNoAccount();
151 method @Nullable public String getInitialPairingDescription();
152 method @Nullable public String getIntentUri();
Chun Zhangf639ce02022-02-08 22:16:38 -0800153 method @Nullable public String getName();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900154 method @Nullable public String getOpenCompanionAppDescription();
155 method @Nullable public String getRetroactivePairingDescription();
156 method @Nullable public String getSubsequentPairingDescription();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900157 method public float getTriggerDistance();
158 method @Nullable public String getTrueWirelessImageUrlCase();
159 method @Nullable public String getTrueWirelessImageUrlLeftBud();
160 method @Nullable public String getTrueWirelessImageUrlRightBud();
161 method @Nullable public String getUnableToConnectDescription();
162 method @Nullable public String getUnableToConnectTitle();
163 method @Nullable public String getUpdateCompanionAppDescription();
164 method @Nullable public String getWaitLaunchCompanionAppDescription();
165 }
166
167 public static final class FastPairDeviceMetadata.Builder {
168 ctor public FastPairDeviceMetadata.Builder();
169 method @NonNull public android.nearby.FastPairDeviceMetadata build();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900170 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setBleTxPower(int);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900171 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setConnectSuccessCompanionAppInstalled(@Nullable String);
172 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setConnectSuccessCompanionAppNotInstalled(@Nullable String);
173 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setDeviceType(int);
174 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setDownloadCompanionAppDescription(@Nullable String);
175 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setFailConnectGoToSettingsDescription(@Nullable String);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900176 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setImage(@Nullable byte[]);
177 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setImageUrl(@Nullable String);
178 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setInitialNotificationDescription(@Nullable String);
179 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setInitialNotificationDescriptionNoAccount(@Nullable String);
180 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setInitialPairingDescription(@Nullable String);
181 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setIntentUri(@Nullable String);
Chun Zhangf639ce02022-02-08 22:16:38 -0800182 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setName(@Nullable String);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900183 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setOpenCompanionAppDescription(@Nullable String);
184 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setRetroactivePairingDescription(@Nullable String);
185 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setSubsequentPairingDescription(@Nullable String);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900186 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setTriggerDistance(float);
187 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setTrueWirelessImageUrlCase(@Nullable String);
188 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setTrueWirelessImageUrlLeftBud(@Nullable String);
189 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setTrueWirelessImageUrlRightBud(@Nullable String);
190 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setUnableToConnectDescription(@Nullable String);
191 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setUnableToConnectTitle(@Nullable String);
192 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setUpdateCompanionAppDescription(@Nullable String);
193 method @NonNull public android.nearby.FastPairDeviceMetadata.Builder setWaitLaunchCompanionAppDescription(@Nullable String);
194 }
195
196 public class FastPairDiscoveryItem {
197 method @Nullable public String getActionUrl();
198 method public int getActionUrlType();
199 method @Nullable public String getAppName();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900200 method @Nullable public byte[] getAuthenticationPublicKeySecp256r1();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900201 method @Nullable public String getDescription();
202 method @Nullable public String getDeviceName();
203 method @Nullable public String getDisplayUrl();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900204 method public long getFirstObservationTimestampMillis();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900205 method @Nullable public String getIconFfeUrl();
206 method @Nullable public byte[] getIconPng();
207 method @Nullable public String getId();
208 method public long getLastObservationTimestampMillis();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900209 method @Nullable public String getMacAddress();
210 method @Nullable public String getPackageName();
211 method public long getPendingAppInstallTimestampMillis();
212 method public int getRssi();
213 method public int getState();
214 method @Nullable public String getTitle();
215 method @Nullable public String getTriggerId();
216 method public int getTxPower();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900217 }
218
219 public static final class FastPairDiscoveryItem.Builder {
220 ctor public FastPairDiscoveryItem.Builder();
221 method @NonNull public android.nearby.FastPairDiscoveryItem build();
222 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setActionUrl(@Nullable String);
223 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setActionUrlType(int);
224 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setAppName(@Nullable String);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900225 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setAuthenticationPublicKeySecp256r1(@Nullable byte[]);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900226 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setDescription(@Nullable String);
227 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setDeviceName(@Nullable String);
228 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setDisplayUrl(@Nullable String);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900229 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setFirstObservationTimestampMillis(long);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900230 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setIconFfeUrl(@Nullable String);
231 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setIconPng(@Nullable byte[]);
232 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setId(@Nullable String);
233 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setLastObservationTimestampMillis(long);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900234 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setMacAddress(@Nullable String);
235 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setPackageName(@Nullable String);
236 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setPendingAppInstallTimestampMillis(long);
237 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setRssi(int);
238 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setState(int);
239 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setTitle(@Nullable String);
240 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setTriggerId(@Nullable String);
241 method @NonNull public android.nearby.FastPairDiscoveryItem.Builder setTxPower(int);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900242 }
243
244 public class FastPairEligibleAccount {
Chun Zhangd9d12aa2022-03-15 00:43:53 -0700245 method @Nullable public android.accounts.Account getAccount();
246 method public boolean isOptIn();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900247 }
248
249 public static final class FastPairEligibleAccount.Builder {
250 ctor public FastPairEligibleAccount.Builder();
251 method @NonNull public android.nearby.FastPairEligibleAccount build();
252 method @NonNull public android.nearby.FastPairEligibleAccount.Builder setAccount(@Nullable android.accounts.Account);
253 method @NonNull public android.nearby.FastPairEligibleAccount.Builder setOptIn(boolean);
254 }
255
256 public abstract class NearbyDevice {
Wei Wangb15b5a82022-02-01 17:08:08 -0800257 method @NonNull public java.util.List<java.lang.Integer> getMediums();
258 method @Nullable public String getName();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900259 method @IntRange(from=0xffffff81, to=126) public int getRssi();
260 method public static boolean isValidMedium(int);
261 }
262
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900263 public class NearbyManager {
Xinyi Zhou1b2a5bf2022-03-22 18:42:26 -0700264 method public static boolean getFastPairScanEnabled(@NonNull android.content.Context);
Chun Zhang32a93a52022-03-24 20:49:25 -0700265 method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static void setFastPairScanEnabled(@NonNull android.content.Context, boolean);
Xinyi Zhoub4efda82022-03-15 18:22:35 -0700266 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);
267 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);
268 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopBroadcast(@NonNull android.nearby.BroadcastCallback);
269 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopScan(@NonNull android.nearby.ScanCallback);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900270 }
271
Wei Wangb15b5a82022-02-01 17:08:08 -0800272 public final class PresenceBroadcastRequest extends android.nearby.BroadcastRequest implements android.os.Parcelable {
Wei Wang24e2cb22022-03-12 12:15:34 -0800273 method public int describeContents();
Wei Wangb15b5a82022-02-01 17:08:08 -0800274 method @NonNull public java.util.List<java.lang.Integer> getActions();
275 method @NonNull public android.nearby.PrivateCredential getCredential();
276 method @NonNull public java.util.List<android.nearby.DataElement> getExtendedProperties();
277 method @NonNull public byte[] getSalt();
Wei Wang24e2cb22022-03-12 12:15:34 -0800278 method public void writeToParcel(@NonNull android.os.Parcel, int);
Wei Wangb15b5a82022-02-01 17:08:08 -0800279 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PresenceBroadcastRequest> CREATOR;
280 }
281
282 public static final class PresenceBroadcastRequest.Builder {
Wei Wang88c48442022-03-05 12:14:12 -0800283 ctor public PresenceBroadcastRequest.Builder(@NonNull java.util.List<java.lang.Integer>, @NonNull byte[], @NonNull android.nearby.PrivateCredential);
Wei Wangb15b5a82022-02-01 17:08:08 -0800284 method @NonNull public android.nearby.PresenceBroadcastRequest.Builder addAction(@IntRange(from=1, to=255) int);
285 method @NonNull public android.nearby.PresenceBroadcastRequest.Builder addExtendedProperty(@NonNull android.nearby.DataElement);
286 method @NonNull public android.nearby.PresenceBroadcastRequest build();
Wei Wangb15b5a82022-02-01 17:08:08 -0800287 method @NonNull public android.nearby.PresenceBroadcastRequest.Builder setTxPower(@IntRange(from=0xffffff81, to=126) int);
288 method @NonNull public android.nearby.PresenceBroadcastRequest.Builder setVersion(int);
289 }
290
Wei Wang24e2cb22022-03-12 12:15:34 -0800291 public abstract class PresenceCredential {
Wei Wangb15b5a82022-02-01 17:08:08 -0800292 method @NonNull public byte[] getAuthenticityKey();
293 method @NonNull public java.util.List<android.nearby.CredentialElement> getCredentialElements();
294 method public int getIdentityType();
295 method @NonNull public byte[] getSecretId();
296 method public int getType();
Wei Wangb15b5a82022-02-01 17:08:08 -0800297 field public static final int CREDENTIAL_TYPE_PRIVATE = 0; // 0x0
298 field public static final int CREDENTIAL_TYPE_PUBLIC = 1; // 0x1
299 field public static final int IDENTITY_TYPE_PRIVATE = 1; // 0x1
300 field public static final int IDENTITY_TYPE_PROVISIONED = 2; // 0x2
Wei Wangb15b5a82022-02-01 17:08:08 -0800301 field public static final int IDENTITY_TYPE_TRUSTED = 3; // 0x3
302 field public static final int IDENTITY_TYPE_UNKNOWN = 0; // 0x0
303 }
304
305 public final class PresenceDevice extends android.nearby.NearbyDevice implements android.os.Parcelable {
306 method public int describeContents();
307 method @NonNull public String getDeviceId();
308 method @Nullable public String getDeviceImageUrl();
309 method public int getDeviceType();
310 method public long getDiscoveryTimestampMillis();
311 method @NonNull public byte[] getEncryptedIdentity();
312 method @NonNull public java.util.List<android.nearby.DataElement> getExtendedProperties();
313 method @NonNull public byte[] getSalt();
314 method @NonNull public byte[] getSecretId();
315 method public void writeToParcel(@NonNull android.os.Parcel, int);
316 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PresenceDevice> CREATOR;
317 }
318
319 public static final class PresenceDevice.Builder {
Wei Wang88c48442022-03-05 12:14:12 -0800320 ctor public PresenceDevice.Builder(@NonNull String, @NonNull byte[], @NonNull byte[], @NonNull byte[]);
Wei Wangb15b5a82022-02-01 17:08:08 -0800321 method @NonNull public android.nearby.PresenceDevice.Builder addExtendedProperty(@NonNull android.nearby.DataElement);
322 method @NonNull public android.nearby.PresenceDevice.Builder addMedium(int);
323 method @NonNull public android.nearby.PresenceDevice build();
Wei Wangb15b5a82022-02-01 17:08:08 -0800324 method @NonNull public android.nearby.PresenceDevice.Builder setDeviceImageUrl(@Nullable String);
325 method @NonNull public android.nearby.PresenceDevice.Builder setDeviceType(int);
326 method @NonNull public android.nearby.PresenceDevice.Builder setDiscoveryTimestampMillis(long);
Wei Wangb15b5a82022-02-01 17:08:08 -0800327 method @NonNull public android.nearby.PresenceDevice.Builder setName(@Nullable String);
328 method @NonNull public android.nearby.PresenceDevice.Builder setRssi(int);
Wei Wangb15b5a82022-02-01 17:08:08 -0800329 }
330
331 public final class PresenceScanFilter extends android.nearby.ScanFilter implements android.os.Parcelable {
Wei Wang24e2cb22022-03-12 12:15:34 -0800332 method public int describeContents();
Wei Wangb15b5a82022-02-01 17:08:08 -0800333 method @NonNull public java.util.List<android.nearby.PublicCredential> getCredentials();
334 method @NonNull public java.util.List<android.nearby.DataElement> getExtendedProperties();
335 method @NonNull public java.util.List<java.lang.Integer> getPresenceActions();
Wei Wang24e2cb22022-03-12 12:15:34 -0800336 method public void writeToParcel(@NonNull android.os.Parcel, int);
Wei Wangb15b5a82022-02-01 17:08:08 -0800337 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PresenceScanFilter> CREATOR;
338 }
339
340 public static final class PresenceScanFilter.Builder {
341 ctor public PresenceScanFilter.Builder();
342 method @NonNull public android.nearby.PresenceScanFilter.Builder addCredential(@NonNull android.nearby.PublicCredential);
343 method @NonNull public android.nearby.PresenceScanFilter.Builder addExtendedProperty(@NonNull android.nearby.DataElement);
344 method @NonNull public android.nearby.PresenceScanFilter.Builder addPresenceAction(@IntRange(from=1, to=255) int);
345 method @NonNull public android.nearby.PresenceScanFilter build();
346 method @NonNull public android.nearby.PresenceScanFilter.Builder setMaxPathLoss(@IntRange(from=0, to=127) int);
347 }
348
349 public final class PrivateCredential extends android.nearby.PresenceCredential implements android.os.Parcelable {
Wei Wang24e2cb22022-03-12 12:15:34 -0800350 method public int describeContents();
Wei Wangb15b5a82022-02-01 17:08:08 -0800351 method @NonNull public String getDeviceName();
352 method @NonNull public byte[] getMetadataEncryptionKey();
Wei Wang24e2cb22022-03-12 12:15:34 -0800353 method public void writeToParcel(@NonNull android.os.Parcel, int);
Wei Wangb15b5a82022-02-01 17:08:08 -0800354 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PrivateCredential> CREATOR;
355 }
356
357 public static final class PrivateCredential.Builder {
Wei Wang24e2cb22022-03-12 12:15:34 -0800358 ctor public PrivateCredential.Builder(@NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull String);
Wei Wangb15b5a82022-02-01 17:08:08 -0800359 method @NonNull public android.nearby.PrivateCredential.Builder addCredentialElement(@NonNull android.nearby.CredentialElement);
360 method @NonNull public android.nearby.PrivateCredential build();
Wei Wangb15b5a82022-02-01 17:08:08 -0800361 method @NonNull public android.nearby.PrivateCredential.Builder setIdentityType(int);
Wei Wangb15b5a82022-02-01 17:08:08 -0800362 }
363
364 public final class PublicCredential extends android.nearby.PresenceCredential implements android.os.Parcelable {
Wei Wang24e2cb22022-03-12 12:15:34 -0800365 method public int describeContents();
Wei Wangb15b5a82022-02-01 17:08:08 -0800366 method @NonNull public byte[] getEncryptedMetadata();
367 method @NonNull public byte[] getEncryptedMetadataKeyTag();
368 method @NonNull public byte[] getPublicKey();
Wei Wang24e2cb22022-03-12 12:15:34 -0800369 method public void writeToParcel(@NonNull android.os.Parcel, int);
Wei Wangb15b5a82022-02-01 17:08:08 -0800370 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PublicCredential> CREATOR;
371 }
372
373 public static final class PublicCredential.Builder {
Wei Wang24e2cb22022-03-12 12:15:34 -0800374 ctor public PublicCredential.Builder(@NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull byte[]);
Wei Wangb15b5a82022-02-01 17:08:08 -0800375 method @NonNull public android.nearby.PublicCredential.Builder addCredentialElement(@NonNull android.nearby.CredentialElement);
376 method @NonNull public android.nearby.PublicCredential build();
Wei Wangb15b5a82022-02-01 17:08:08 -0800377 method @NonNull public android.nearby.PublicCredential.Builder setIdentityType(int);
Wei Wangb15b5a82022-02-01 17:08:08 -0800378 }
379
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900380 public interface ScanCallback {
381 method public void onDiscovered(@NonNull android.nearby.NearbyDevice);
382 method public void onLost(@NonNull android.nearby.NearbyDevice);
383 method public void onUpdated(@NonNull android.nearby.NearbyDevice);
384 }
385
Wei Wang24e2cb22022-03-12 12:15:34 -0800386 public abstract class ScanFilter {
Wei Wangb15b5a82022-02-01 17:08:08 -0800387 method @IntRange(from=0, to=127) public int getMaxPathLoss();
388 method public int getType();
Wei Wangb15b5a82022-02-01 17:08:08 -0800389 }
390
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900391 public final class ScanRequest implements android.os.Parcelable {
392 method public int describeContents();
Wei Wangb15b5a82022-02-01 17:08:08 -0800393 method @NonNull public java.util.List<android.nearby.ScanFilter> getScanFilters();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900394 method public int getScanMode();
395 method public int getScanType();
396 method @NonNull public android.os.WorkSource getWorkSource();
Xinyi Zhouff987502022-03-09 17:38:41 -0800397 method public boolean isBleEnabled();
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900398 method public static boolean isValidScanMode(int);
399 method public static boolean isValidScanType(int);
400 method @NonNull public static String scanModeToString(int);
401 method public void writeToParcel(@NonNull android.os.Parcel, int);
402 field @NonNull public static final android.os.Parcelable.Creator<android.nearby.ScanRequest> CREATOR;
403 field public static final int SCAN_MODE_BALANCED = 1; // 0x1
404 field public static final int SCAN_MODE_LOW_LATENCY = 2; // 0x2
405 field public static final int SCAN_MODE_LOW_POWER = 0; // 0x0
406 field public static final int SCAN_MODE_NO_POWER = -1; // 0xffffffff
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900407 field public static final int SCAN_TYPE_FAST_PAIR = 1; // 0x1
Chun Zhange4440de2022-03-24 22:40:56 -0700408 field public static final int SCAN_TYPE_NEARBY_PRESENCE = 2; // 0x2
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900409 }
410
411 public static final class ScanRequest.Builder {
412 ctor public ScanRequest.Builder();
Wei Wangb15b5a82022-02-01 17:08:08 -0800413 method @NonNull public android.nearby.ScanRequest.Builder addScanFilter(@NonNull android.nearby.ScanFilter);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900414 method @NonNull public android.nearby.ScanRequest build();
Xinyi Zhouff987502022-03-09 17:38:41 -0800415 method @NonNull public android.nearby.ScanRequest.Builder setBleEnabled(boolean);
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900416 method @NonNull public android.nearby.ScanRequest.Builder setScanMode(int);
417 method @NonNull public android.nearby.ScanRequest.Builder setScanType(int);
418 method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.nearby.ScanRequest.Builder setWorkSource(@Nullable android.os.WorkSource);
419 }
420
421}
422
Aaron Huang68ca3732022-01-06 19:30:43 +0800423package android.net {
424
Xiao Maeaaf7d32022-01-23 16:14:51 +0000425 public class EthernetManager {
Patrick Rohrfa376a52022-03-16 20:16:09 +0100426 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>);
427 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>);
Xiao Maeaaf7d32022-01-23 16:14:51 +0000428 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);
Patrick Rohrc551ebb2022-03-16 20:15:18 +0100429 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>);
Xiao Maeaaf7d32022-01-23 16:14:51 +0000430 }
431
432 public static interface EthernetManager.TetheredInterfaceCallback {
433 method public void onAvailable(@NonNull String);
434 method public void onUnavailable();
435 }
436
437 public static class EthernetManager.TetheredInterfaceRequest {
438 method public void release();
439 }
440
441 public final class EthernetNetworkManagementException extends java.lang.RuntimeException implements android.os.Parcelable {
442 ctor public EthernetNetworkManagementException(@NonNull String);
443 method public int describeContents();
444 method public void writeToParcel(@NonNull android.os.Parcel, int);
445 field @NonNull public static final android.os.Parcelable.Creator<android.net.EthernetNetworkManagementException> CREATOR;
446 }
447
448 public final class EthernetNetworkUpdateRequest implements android.os.Parcelable {
449 method public int describeContents();
Patrick Rohr8a910f42022-03-16 20:07:23 +0100450 method @Nullable public android.net.IpConfiguration getIpConfiguration();
Xiao Maeaaf7d32022-01-23 16:14:51 +0000451 method @Nullable public android.net.NetworkCapabilities getNetworkCapabilities();
452 method public void writeToParcel(@NonNull android.os.Parcel, int);
453 field @NonNull public static final android.os.Parcelable.Creator<android.net.EthernetNetworkUpdateRequest> CREATOR;
454 }
455
456 public static final class EthernetNetworkUpdateRequest.Builder {
457 ctor public EthernetNetworkUpdateRequest.Builder();
458 ctor public EthernetNetworkUpdateRequest.Builder(@NonNull android.net.EthernetNetworkUpdateRequest);
459 method @NonNull public android.net.EthernetNetworkUpdateRequest build();
Patrick Rohr8a910f42022-03-16 20:07:23 +0100460 method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setIpConfiguration(@Nullable android.net.IpConfiguration);
Xiao Maeaaf7d32022-01-23 16:14:51 +0000461 method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setNetworkCapabilities(@Nullable android.net.NetworkCapabilities);
462 }
463
Yan Yanf8063e32022-02-08 19:26:29 -0800464 public class IpSecManager {
Aaron Huang68ca3732022-01-06 19:30:43 +0800465 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;
466 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;
467 }
468
469 public static final class IpSecManager.IpSecTunnelInterface implements java.lang.AutoCloseable {
470 method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void addAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException;
471 method public void close();
472 method @NonNull public String getInterfaceName();
473 method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void removeAddress(@NonNull java.net.InetAddress, int) throws java.io.IOException;
474 method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void setUnderlyingNetwork(@NonNull android.net.Network) throws java.io.IOException;
475 }
476
477 public static class IpSecTransform.Builder {
478 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;
479 }
480
Junyu Lai2ef865e2022-01-17 11:52:57 +0000481 public final class NetworkStats implements java.lang.Iterable<android.net.NetworkStats.Entry> android.os.Parcelable {
482 ctor public NetworkStats(long, int);
483 method @NonNull public android.net.NetworkStats add(@NonNull android.net.NetworkStats);
484 method @NonNull public android.net.NetworkStats addEntry(@NonNull android.net.NetworkStats.Entry);
485 method public int describeContents();
junyulai68016902022-03-28 15:39:12 +0800486 method @NonNull public java.util.Iterator<android.net.NetworkStats.Entry> iterator();
Junyu Lai2ef865e2022-01-17 11:52:57 +0000487 method @NonNull public android.net.NetworkStats subtract(@NonNull android.net.NetworkStats);
488 method public void writeToParcel(@NonNull android.os.Parcel, int);
489 field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStats> CREATOR;
490 field public static final int DEFAULT_NETWORK_ALL = -1; // 0xffffffff
491 field public static final int DEFAULT_NETWORK_NO = 0; // 0x0
492 field public static final int DEFAULT_NETWORK_YES = 1; // 0x1
493 field public static final String IFACE_VT = "vt_data0";
494 field public static final int METERED_ALL = -1; // 0xffffffff
495 field public static final int METERED_NO = 0; // 0x0
496 field public static final int METERED_YES = 1; // 0x1
497 field public static final int ROAMING_ALL = -1; // 0xffffffff
498 field public static final int ROAMING_NO = 0; // 0x0
499 field public static final int ROAMING_YES = 1; // 0x1
500 field public static final int SET_ALL = -1; // 0xffffffff
501 field public static final int SET_DEFAULT = 0; // 0x0
502 field public static final int SET_FOREGROUND = 1; // 0x1
503 field public static final int TAG_NONE = 0; // 0x0
504 field public static final int UID_ALL = -1; // 0xffffffff
505 field public static final int UID_TETHERING = -5; // 0xfffffffb
506 }
507
508 public static class NetworkStats.Entry {
509 ctor public NetworkStats.Entry(@Nullable String, int, int, int, int, int, int, long, long, long, long, long);
junyulai68016902022-03-28 15:39:12 +0800510 method public int getDefaultNetwork();
511 method public int getMetered();
512 method public long getOperations();
513 method public int getRoaming();
514 method public long getRxBytes();
515 method public long getRxPackets();
516 method public int getSet();
517 method public int getTag();
518 method public long getTxBytes();
519 method public long getTxPackets();
520 method public int getUid();
Junyu Lai2ef865e2022-01-17 11:52:57 +0000521 }
522
523 public class TrafficStats {
524 method public static void setThreadStatsTagApp();
525 method public static void setThreadStatsTagBackup();
Junyu Lai2ef865e2022-01-17 11:52:57 +0000526 method public static void setThreadStatsTagRestore();
527 field public static final int TAG_NETWORK_STACK_IMPERSONATION_RANGE_END = -113; // 0xffffff8f
528 field public static final int TAG_NETWORK_STACK_IMPERSONATION_RANGE_START = -128; // 0xffffff80
529 field public static final int TAG_NETWORK_STACK_RANGE_END = -257; // 0xfffffeff
530 field public static final int TAG_NETWORK_STACK_RANGE_START = -768; // 0xfffffd00
531 field public static final int TAG_SYSTEM_IMPERSONATION_RANGE_END = -241; // 0xffffff0f
532 field public static final int TAG_SYSTEM_IMPERSONATION_RANGE_START = -256; // 0xffffff00
533 }
534
535}
536
537package android.net.netstats.provider {
538
539 public abstract class NetworkStatsProvider {
540 ctor public NetworkStatsProvider();
541 method public void notifyAlertReached();
542 method public void notifyLimitReached();
543 method public void notifyStatsUpdated(int, @NonNull android.net.NetworkStats, @NonNull android.net.NetworkStats);
544 method public void notifyWarningReached();
545 method public abstract void onRequestStatsUpdate(int);
546 method public abstract void onSetAlert(long);
547 method public abstract void onSetLimit(@NonNull String, long);
548 method public void onSetWarningAndLimit(@NonNull String, long, long);
549 field public static final int QUOTA_UNLIMITED = -1; // 0xffffffff
550 }
551
Aaron Huang68ca3732022-01-06 19:30:43 +0800552}
553