paulhu | 667e8fb | 2021-12-14 01:30:22 +0000 | [diff] [blame] | 1 | // Signature format: 2.0 |
Junyu Lai | 2ef865e | 2022-01-17 11:52:57 +0000 | [diff] [blame] | 2 | package android.app.usage { |
| 3 | |
| 4 | public class NetworkStatsManager { |
junyulai | b59e542 | 2022-03-01 17:08:01 +0800 | [diff] [blame] | 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); |
Junyu Lai | 2ef865e | 2022-01-17 11:52:57 +0000 | [diff] [blame] | 7 | } |
| 8 | |
| 9 | } |
| 10 | |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 11 | package android.nearby { |
| 12 | |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 13 | public interface BroadcastCallback { |
Wei Wang | 88c4844 | 2022-03-05 12:14:12 -0800 | [diff] [blame] | 14 | method public void onStatusChanged(int); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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 | |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 22 | public abstract class BroadcastRequest { |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 27 | field public static final int BROADCAST_TYPE_NEARBY_PRESENCE = 3; // 0x3 |
Wei Wang | 88c4844 | 2022-03-05 12:14:12 -0800 | [diff] [blame] | 28 | field public static final int BROADCAST_TYPE_UNKNOWN = -1; // 0xffffffff |
Wei Wang | f5bb26f | 2022-03-25 10:30:06 -0700 | [diff] [blame] | 29 | field public static final int MEDIUM_BLE = 1; // 0x1 |
Wei Wang | 88c4844 | 2022-03-05 12:14:12 -0800 | [diff] [blame] | 30 | field public static final int PRESENCE_VERSION_UNKNOWN = -1; // 0xffffffff |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 31 | field public static final int PRESENCE_VERSION_V0 = 0; // 0x0 |
| 32 | field public static final int PRESENCE_VERSION_V1 = 1; // 0x1 |
Wei Wang | 88c4844 | 2022-03-05 12:14:12 -0800 | [diff] [blame] | 33 | field public static final int UNKNOWN_TX_POWER = -127; // 0xffffff81 |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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 | |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 54 | public abstract class NearbyDevice { |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 55 | method @NonNull public java.util.List<java.lang.Integer> getMediums(); |
| 56 | method @Nullable public String getName(); |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 57 | method @IntRange(from=0xffffff81, to=126) public int getRssi(); |
| 58 | method public static boolean isValidMedium(int); |
| 59 | } |
| 60 | |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 61 | public class NearbyManager { |
Yahav Nussbaum | c712a57 | 2024-01-29 12:23:28 +0000 | [diff] [blame] | 62 | method @FlaggedApi("com.android.nearby.flags.powered_off_finding") @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getPoweredOffFindingMode(); |
Xinyi Zhou | e73c76f | 2023-01-27 16:47:00 -0800 | [diff] [blame] | 63 | method public void queryOffloadCapability(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.nearby.OffloadCapability>); |
Yahav Nussbaum | c712a57 | 2024-01-29 12:23:28 +0000 | [diff] [blame] | 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); |
Xinyi Zhou | b4efda8 | 2022-03-15 18:22:35 -0700 | [diff] [blame] | 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); |
Yahav Nussbaum | c712a57 | 2024-01-29 12:23:28 +0000 | [diff] [blame] | 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 |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 73 | } |
| 74 | |
Xinyi Zhou | e73c76f | 2023-01-27 16:47:00 -0800 | [diff] [blame] | 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 | |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 92 | public final class PresenceBroadcastRequest extends android.nearby.BroadcastRequest implements android.os.Parcelable { |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 93 | method public int describeContents(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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(); |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 98 | method public void writeToParcel(@NonNull android.os.Parcel, int); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 99 | field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PresenceBroadcastRequest> CREATOR; |
| 100 | } |
| 101 | |
| 102 | public static final class PresenceBroadcastRequest.Builder { |
Wei Wang | 88c4844 | 2022-03-05 12:14:12 -0800 | [diff] [blame] | 103 | ctor public PresenceBroadcastRequest.Builder(@NonNull java.util.List<java.lang.Integer>, @NonNull byte[], @NonNull android.nearby.PrivateCredential); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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 | |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 111 | public abstract class PresenceCredential { |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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 |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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 { |
Wei Wang | 88c4844 | 2022-03-05 12:14:12 -0800 | [diff] [blame] | 140 | ctor public PresenceDevice.Builder(@NonNull String, @NonNull byte[], @NonNull byte[], @NonNull byte[]); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 147 | method @NonNull public android.nearby.PresenceDevice.Builder setName(@Nullable String); |
| 148 | method @NonNull public android.nearby.PresenceDevice.Builder setRssi(int); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 149 | } |
| 150 | |
| 151 | public final class PresenceScanFilter extends android.nearby.ScanFilter implements android.os.Parcelable { |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 152 | method public int describeContents(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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(); |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 156 | method public void writeToParcel(@NonNull android.os.Parcel, int); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 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 { |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 170 | method public int describeContents(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 171 | method @NonNull public String getDeviceName(); |
| 172 | method @NonNull public byte[] getMetadataEncryptionKey(); |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 173 | method public void writeToParcel(@NonNull android.os.Parcel, int); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 174 | field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PrivateCredential> CREATOR; |
| 175 | } |
| 176 | |
| 177 | public static final class PrivateCredential.Builder { |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 178 | ctor public PrivateCredential.Builder(@NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull String); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 179 | method @NonNull public android.nearby.PrivateCredential.Builder addCredentialElement(@NonNull android.nearby.CredentialElement); |
| 180 | method @NonNull public android.nearby.PrivateCredential build(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 181 | method @NonNull public android.nearby.PrivateCredential.Builder setIdentityType(int); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 182 | } |
| 183 | |
| 184 | public final class PublicCredential extends android.nearby.PresenceCredential implements android.os.Parcelable { |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 185 | method public int describeContents(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 186 | method @NonNull public byte[] getEncryptedMetadata(); |
| 187 | method @NonNull public byte[] getEncryptedMetadataKeyTag(); |
| 188 | method @NonNull public byte[] getPublicKey(); |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 189 | method public void writeToParcel(@NonNull android.os.Parcel, int); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 190 | field @NonNull public static final android.os.Parcelable.Creator<android.nearby.PublicCredential> CREATOR; |
| 191 | } |
| 192 | |
| 193 | public static final class PublicCredential.Builder { |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 194 | ctor public PublicCredential.Builder(@NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull byte[], @NonNull byte[]); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 195 | method @NonNull public android.nearby.PublicCredential.Builder addCredentialElement(@NonNull android.nearby.CredentialElement); |
| 196 | method @NonNull public android.nearby.PublicCredential build(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 197 | method @NonNull public android.nearby.PublicCredential.Builder setIdentityType(int); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 198 | } |
| 199 | |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 200 | public interface ScanCallback { |
| 201 | method public void onDiscovered(@NonNull android.nearby.NearbyDevice); |
Xinyi Zhou | 9afce39 | 2023-01-10 18:28:56 -0800 | [diff] [blame] | 202 | method public default void onError(int); |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 203 | method public void onLost(@NonNull android.nearby.NearbyDevice); |
| 204 | method public void onUpdated(@NonNull android.nearby.NearbyDevice); |
Xinyi Zhou | 75200b1 | 2023-02-10 23:13:52 -0800 | [diff] [blame] | 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 |
Xinyi Zhou | 9afce39 | 2023-01-10 18:28:56 -0800 | [diff] [blame] | 208 | field public static final int ERROR_UNKNOWN = 0; // 0x0 |
| 209 | field public static final int ERROR_UNSUPPORTED = 1; // 0x1 |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 210 | } |
| 211 | |
Wei Wang | 24e2cb2 | 2022-03-12 12:15:34 -0800 | [diff] [blame] | 212 | public abstract class ScanFilter { |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 213 | method @IntRange(from=0, to=127) public int getMaxPathLoss(); |
| 214 | method public int getType(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 215 | } |
| 216 | |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 217 | public final class ScanRequest implements android.os.Parcelable { |
| 218 | method public int describeContents(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 219 | method @NonNull public java.util.List<android.nearby.ScanFilter> getScanFilters(); |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 220 | method public int getScanMode(); |
| 221 | method public int getScanType(); |
| 222 | method @NonNull public android.os.WorkSource getWorkSource(); |
Xinyi Zhou | ff98750 | 2022-03-09 17:38:41 -0800 | [diff] [blame] | 223 | method public boolean isBleEnabled(); |
Xinyi Zhou | 8fe4541 | 2023-01-20 16:21:14 -0800 | [diff] [blame] | 224 | method public boolean isOffloadOnly(); |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 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 |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 234 | field public static final int SCAN_TYPE_FAST_PAIR = 1; // 0x1 |
Chun Zhang | e4440de | 2022-03-24 22:40:56 -0700 | [diff] [blame] | 235 | field public static final int SCAN_TYPE_NEARBY_PRESENCE = 2; // 0x2 |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 236 | } |
| 237 | |
| 238 | public static final class ScanRequest.Builder { |
| 239 | ctor public ScanRequest.Builder(); |
Wei Wang | b15b5a8 | 2022-02-01 17:08:08 -0800 | [diff] [blame] | 240 | method @NonNull public android.nearby.ScanRequest.Builder addScanFilter(@NonNull android.nearby.ScanFilter); |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 241 | method @NonNull public android.nearby.ScanRequest build(); |
Xinyi Zhou | ff98750 | 2022-03-09 17:38:41 -0800 | [diff] [blame] | 242 | method @NonNull public android.nearby.ScanRequest.Builder setBleEnabled(boolean); |
Xinyi Zhou | 8fe4541 | 2023-01-20 16:21:14 -0800 | [diff] [blame] | 243 | method @NonNull public android.nearby.ScanRequest.Builder setOffloadOnly(boolean); |
Remi NGUYEN VAN | 51935fc | 2022-01-07 13:18:54 +0900 | [diff] [blame] | 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 | |
Aaron Huang | 68ca373 | 2022-01-06 19:30:43 +0800 | [diff] [blame] | 251 | package android.net { |
| 252 | |
Xiao Ma | eaaf7d3 | 2022-01-23 16:14:51 +0000 | [diff] [blame] | 253 | public class EthernetManager { |
Patrick Rohr | fa376a5 | 2022-03-16 20:16:09 +0100 | [diff] [blame] | 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>); |
Xiao Ma | eaaf7d3 | 2022-01-23 16:14:51 +0000 | [diff] [blame] | 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); |
Patrick Rohr | c551ebb | 2022-03-16 20:15:18 +0100 | [diff] [blame] | 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>); |
Xiao Ma | eaaf7d3 | 2022-01-23 16:14:51 +0000 | [diff] [blame] | 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(); |
Patrick Rohr | 8a910f4 | 2022-03-16 20:07:23 +0100 | [diff] [blame] | 278 | method @Nullable public android.net.IpConfiguration getIpConfiguration(); |
Xiao Ma | eaaf7d3 | 2022-01-23 16:14:51 +0000 | [diff] [blame] | 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(); |
Patrick Rohr | 8a910f4 | 2022-03-16 20:07:23 +0100 | [diff] [blame] | 288 | method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setIpConfiguration(@Nullable android.net.IpConfiguration); |
Xiao Ma | eaaf7d3 | 2022-01-23 16:14:51 +0000 | [diff] [blame] | 289 | method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setNetworkCapabilities(@Nullable android.net.NetworkCapabilities); |
| 290 | } |
| 291 | |
Yan Yan | f8063e3 | 2022-02-08 19:26:29 -0800 | [diff] [blame] | 292 | public class IpSecManager { |
Aaron Huang | 68ca373 | 2022-01-06 19:30:43 +0800 | [diff] [blame] | 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; |
Yan Yan | 81c2160 | 2022-10-20 22:23:15 +0000 | [diff] [blame] | 295 | method @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) public void startTunnelModeTransformMigration(@NonNull android.net.IpSecTransform, @NonNull java.net.InetAddress, @NonNull java.net.InetAddress); |
Aaron Huang | 68ca373 | 2022-01-06 19:30:43 +0800 | [diff] [blame] | 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 | |
Junyu Lai | 2ef865e | 2022-01-17 11:52:57 +0000 | [diff] [blame] | 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); |
Junyu Lai | d0e0494 | 2024-07-10 18:10:05 +0800 | [diff] [blame] | 313 | method @FlaggedApi("com.android.net.flags.netstats_add_entries") @NonNull public android.net.NetworkStats addEntries(@NonNull java.util.List<android.net.NetworkStats.Entry>); |
Junyu Lai | 2ef865e | 2022-01-17 11:52:57 +0000 | [diff] [blame] | 314 | method @NonNull public android.net.NetworkStats addEntry(@NonNull android.net.NetworkStats.Entry); |
Paul Duffin | b3c3f2e | 2023-10-12 18:48:37 +0100 | [diff] [blame] | 315 | method public android.net.NetworkStats clone(); |
Junyu Lai | 2ef865e | 2022-01-17 11:52:57 +0000 | [diff] [blame] | 316 | method public int describeContents(); |
junyulai | 6801690 | 2022-03-28 15:39:12 +0800 | [diff] [blame] | 317 | method @NonNull public java.util.Iterator<android.net.NetworkStats.Entry> iterator(); |
Junyu Lai | 2ef865e | 2022-01-17 11:52:57 +0000 | [diff] [blame] | 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); |
junyulai | 6801690 | 2022-03-28 15:39:12 +0800 | [diff] [blame] | 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(); |
Junyu Lai | 2ef865e | 2022-01-17 11:52:57 +0000 | [diff] [blame] | 352 | } |
| 353 | |
| 354 | public class TrafficStats { |
| 355 | method public static void setThreadStatsTagApp(); |
| 356 | method public static void setThreadStatsTagBackup(); |
Junyu Lai | 2ef865e | 2022-01-17 11:52:57 +0000 | [diff] [blame] | 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 | |
| 368 | package 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 | |
Aaron Huang | 68ca373 | 2022-01-06 19:30:43 +0800 | [diff] [blame] | 383 | } |
| 384 | |
Yuyang Huang | 00cf7ed | 2023-05-15 10:54:07 +0900 | [diff] [blame] | 385 | package android.net.nsd { |
| 386 | |
| 387 | public final class NsdManager { |
Motomu Utsumi | ce23d84 | 2023-11-28 16:18:00 +0900 | [diff] [blame] | 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); |
Yuyang Huang | 00cf7ed | 2023-05-15 10:54:07 +0900 | [diff] [blame] | 390 | } |
| 391 | |
Motomu Utsumi | ce23d84 | 2023-11-28 16:18:00 +0900 | [diff] [blame] | 392 | @FlaggedApi("com.android.net.flags.register_nsd_offload_engine_api") public interface OffloadEngine { |
Yuyang Huang | 00cf7ed | 2023-05-15 10:54:07 +0900 | [diff] [blame] | 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 | |
Motomu Utsumi | ce23d84 | 2023-11-28 16:18:00 +0900 | [diff] [blame] | 401 | @FlaggedApi("com.android.net.flags.register_nsd_offload_engine_api") public final class OffloadServiceInfo implements android.os.Parcelable { |
Yuyang Huang | 00cf7ed | 2023-05-15 10:54:07 +0900 | [diff] [blame] | 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 | |
Kangping Dong | 1cec48f | 2023-08-21 18:48:14 +0800 | [diff] [blame] | 425 | package android.net.thread { |
| 426 | |
Kangping Dong | 7fea5fa | 2023-08-30 17:25:34 +0800 | [diff] [blame] | 427 | @FlaggedApi("com.android.net.thread.flags.thread_enabled") public final class ActiveOperationalDataset implements android.os.Parcelable { |
Kangping Dong | 7fea5fa | 2023-08-30 17:25:34 +0800 | [diff] [blame] | 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 | |
Handa Wang | 5fc74b9 | 2024-06-20 09:44:49 +0000 | [diff] [blame] | 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 isDhcpv6PdEnabled(); |
| 504 | method public boolean isNat64Enabled(); |
| 505 | method public void writeToParcel(@NonNull android.os.Parcel, int); |
| 506 | field @NonNull public static final android.os.Parcelable.Creator<android.net.thread.ThreadConfiguration> CREATOR; |
| 507 | } |
| 508 | |
Kangping Dong | 5e1d430 | 2023-10-17 21:55:19 +0800 | [diff] [blame] | 509 | @FlaggedApi("com.android.net.thread.flags.thread_enabled") public final class ThreadNetworkController { |
Kangping Dong | af4f1f5 | 2023-10-27 19:32:10 +0800 | [diff] [blame] | 510 | method public void createRandomizedDataset(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.net.thread.ActiveOperationalDataset,android.net.thread.ThreadNetworkException>); |
Kangping Dong | 1cec48f | 2023-08-21 18:48:14 +0800 | [diff] [blame] | 511 | method public int getThreadVersion(); |
Kangping Dong | b1c75db | 2023-08-30 19:15:04 +0800 | [diff] [blame] | 512 | method public static boolean isAttached(int); |
| 513 | 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>); |
| 514 | 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>); |
Handa Wang | 5fc74b9 | 2024-06-20 09:44:49 +0000 | [diff] [blame] | 515 | 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>); |
Kangping Dong | b1c75db | 2023-08-30 19:15:04 +0800 | [diff] [blame] | 516 | 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); |
| 517 | method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.thread.ThreadNetworkController.StateCallback); |
| 518 | 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>); |
Zhanglong Xia | 5bbfd91 | 2024-06-20 13:04:29 +0800 | [diff] [blame] | 519 | 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>); |
Yang Sun | 0797d9d | 2024-01-06 17:41:46 +0800 | [diff] [blame] | 520 | 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>); |
Handa Wang | 5fc74b9 | 2024-06-20 09:44:49 +0000 | [diff] [blame] | 521 | 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>); |
Kangping Dong | 8e44412 | 2023-11-13 17:29:07 +0800 | [diff] [blame] | 522 | method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_NETWORK_STATE, "android.permission.THREAD_NETWORK_PRIVILEGED"}) public void unregisterOperationalDatasetCallback(@NonNull android.net.thread.ThreadNetworkController.OperationalDatasetCallback); |
| 523 | method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void unregisterStateCallback(@NonNull android.net.thread.ThreadNetworkController.StateCallback); |
Kangping Dong | b1c75db | 2023-08-30 19:15:04 +0800 | [diff] [blame] | 524 | field public static final int DEVICE_ROLE_CHILD = 2; // 0x2 |
| 525 | field public static final int DEVICE_ROLE_DETACHED = 1; // 0x1 |
| 526 | field public static final int DEVICE_ROLE_LEADER = 4; // 0x4 |
| 527 | field public static final int DEVICE_ROLE_ROUTER = 3; // 0x3 |
| 528 | field public static final int DEVICE_ROLE_STOPPED = 0; // 0x0 |
Zhanglong Xia | 5bbfd91 | 2024-06-20 13:04:29 +0800 | [diff] [blame] | 529 | field public static final int MAX_POWER_CHANNEL_DISABLED = -2147483648; // 0x80000000 |
Yang Sun | 0797d9d | 2024-01-06 17:41:46 +0800 | [diff] [blame] | 530 | field public static final int STATE_DISABLED = 0; // 0x0 |
| 531 | field public static final int STATE_DISABLING = 2; // 0x2 |
| 532 | field public static final int STATE_ENABLED = 1; // 0x1 |
Kangping Dong | 1cec48f | 2023-08-21 18:48:14 +0800 | [diff] [blame] | 533 | field public static final int THREAD_VERSION_1_3 = 4; // 0x4 |
| 534 | } |
| 535 | |
Kangping Dong | b1c75db | 2023-08-30 19:15:04 +0800 | [diff] [blame] | 536 | public static interface ThreadNetworkController.OperationalDatasetCallback { |
| 537 | method public void onActiveOperationalDatasetChanged(@Nullable android.net.thread.ActiveOperationalDataset); |
| 538 | method public default void onPendingOperationalDatasetChanged(@Nullable android.net.thread.PendingOperationalDataset); |
| 539 | } |
| 540 | |
| 541 | public static interface ThreadNetworkController.StateCallback { |
| 542 | method public void onDeviceRoleChanged(int); |
| 543 | method public default void onPartitionIdChanged(long); |
Yang Sun | 0797d9d | 2024-01-06 17:41:46 +0800 | [diff] [blame] | 544 | method public default void onThreadEnableStateChanged(int); |
Kangping Dong | b1c75db | 2023-08-30 19:15:04 +0800 | [diff] [blame] | 545 | } |
| 546 | |
| 547 | @FlaggedApi("com.android.net.thread.flags.thread_enabled") public class ThreadNetworkException extends java.lang.Exception { |
| 548 | ctor public ThreadNetworkException(int, @NonNull String); |
| 549 | method public int getErrorCode(); |
| 550 | field public static final int ERROR_ABORTED = 2; // 0x2 |
| 551 | field public static final int ERROR_BUSY = 5; // 0x5 |
| 552 | field public static final int ERROR_FAILED_PRECONDITION = 6; // 0x6 |
| 553 | field public static final int ERROR_INTERNAL_ERROR = 1; // 0x1 |
| 554 | field public static final int ERROR_REJECTED_BY_PEER = 8; // 0x8 |
| 555 | field public static final int ERROR_RESOURCE_EXHAUSTED = 10; // 0xa |
| 556 | field public static final int ERROR_RESPONSE_BAD_FORMAT = 9; // 0x9 |
Yang Sun | 0797d9d | 2024-01-06 17:41:46 +0800 | [diff] [blame] | 557 | field public static final int ERROR_THREAD_DISABLED = 12; // 0xc |
Kangping Dong | b1c75db | 2023-08-30 19:15:04 +0800 | [diff] [blame] | 558 | field public static final int ERROR_TIMEOUT = 3; // 0x3 |
| 559 | field public static final int ERROR_UNAVAILABLE = 4; // 0x4 |
Kangping Dong | 2c83e2f | 2024-01-16 15:43:45 +0800 | [diff] [blame] | 560 | field public static final int ERROR_UNKNOWN = 11; // 0xb |
Kangping Dong | b1c75db | 2023-08-30 19:15:04 +0800 | [diff] [blame] | 561 | field public static final int ERROR_UNSUPPORTED_CHANNEL = 7; // 0x7 |
Zhanglong Xia | 5bbfd91 | 2024-06-20 13:04:29 +0800 | [diff] [blame] | 562 | field public static final int ERROR_UNSUPPORTED_FEATURE = 13; // 0xd |
Kangping Dong | b1c75db | 2023-08-30 19:15:04 +0800 | [diff] [blame] | 563 | } |
| 564 | |
Kangping Dong | 5e1d430 | 2023-10-17 21:55:19 +0800 | [diff] [blame] | 565 | @FlaggedApi("com.android.net.thread.flags.thread_enabled") public final class ThreadNetworkManager { |
Kangping Dong | 1cec48f | 2023-08-21 18:48:14 +0800 | [diff] [blame] | 566 | method @NonNull public java.util.List<android.net.thread.ThreadNetworkController> getAllThreadNetworkControllers(); |
| 567 | } |
| 568 | |
| 569 | } |
| 570 | |