1// Signature format: 2.0 2package android.bluetooth { 3 4 public final class BluetoothA2dp implements android.bluetooth.BluetoothProfile { 5 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BufferConstraints getBufferConstraints(); 6 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 7 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getDynamicBufferSupport(); 8 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setBufferLengthMillis(int, int); 9 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 10 field public static final int DYNAMIC_BUFFER_SUPPORT_A2DP_OFFLOAD = 1; // 0x1 11 field public static final int DYNAMIC_BUFFER_SUPPORT_A2DP_SOFTWARE_ENCODING = 2; // 0x2 12 field public static final int DYNAMIC_BUFFER_SUPPORT_NONE = 0; // 0x0 13 field public static final int OPTIONAL_CODECS_NOT_SUPPORTED = 0; // 0x0 14 field public static final int OPTIONAL_CODECS_PREF_DISABLED = 0; // 0x0 15 field public static final int OPTIONAL_CODECS_PREF_ENABLED = 1; // 0x1 16 field public static final int OPTIONAL_CODECS_PREF_UNKNOWN = -1; // 0xffffffff 17 field public static final int OPTIONAL_CODECS_SUPPORTED = 1; // 0x1 18 field public static final int OPTIONAL_CODECS_SUPPORT_UNKNOWN = -1; // 0xffffffff 19 } 20 21 public final class BluetoothA2dpSink implements android.bluetooth.BluetoothProfile { 22 method public void finalize(); 23 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 24 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isAudioPlaying(@NonNull android.bluetooth.BluetoothDevice); 25 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 26 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp-sink.profile.action.CONNECTION_STATE_CHANGED"; 27 } 28 29 public final class BluetoothAdapter { 30 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean addOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener); 31 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disableBLE(); 32 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean enableBLE(); 33 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean enableNoAutoConnect(); 34 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void generateLocalOobData(int, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.OobDataCallback); 35 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public long getDiscoveryEndMillis(); 36 method public boolean isBleScanAlwaysAvailable(); 37 method public boolean isLeEnabled(); 38 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean removeActiveDevice(int); 39 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean removeOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener); 40 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean setActiveDevice(@NonNull android.bluetooth.BluetoothDevice, int); 41 field public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED"; 42 field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE"; 43 field public static final int ACTIVE_DEVICE_ALL = 2; // 0x2 44 field public static final int ACTIVE_DEVICE_AUDIO = 0; // 0x0 45 field public static final int ACTIVE_DEVICE_PHONE_CALL = 1; // 0x1 46 } 47 48 public static interface BluetoothAdapter.OnMetadataChangedListener { 49 method public void onMetadataChanged(@NonNull android.bluetooth.BluetoothDevice, int, @Nullable byte[]); 50 } 51 52 public static interface BluetoothAdapter.OobDataCallback { 53 method public void onError(int); 54 method public void onOobData(int, @NonNull android.bluetooth.OobData); 55 } 56 57 public final class BluetoothDevice implements android.os.Parcelable { 58 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean canBondWithoutDialog(); 59 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean cancelBondProcess(); 60 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean createBondOutOfBand(int, @Nullable android.bluetooth.OobData, @Nullable android.bluetooth.OobData); 61 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public byte[] getMetadata(int); 62 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getSimAccessPermission(); 63 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isConnected(); 64 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isEncrypted(); 65 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isInSilenceMode(); 66 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean removeBond(); 67 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setMessageAccessPermission(int); 68 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setMetadata(int, @NonNull byte[]); 69 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setPhonebookAccessPermission(int); 70 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setSilenceMode(boolean); 71 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setSimAccessPermission(int); 72 field public static final int ACCESS_ALLOWED = 1; // 0x1 73 field public static final int ACCESS_REJECTED = 2; // 0x2 74 field public static final int ACCESS_UNKNOWN = 0; // 0x0 75 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_SILENCE_MODE_CHANGED = "android.bluetooth.device.action.SILENCE_MODE_CHANGED"; 76 field public static final String DEVICE_TYPE_DEFAULT = "Default"; 77 field public static final String DEVICE_TYPE_UNTETHERED_HEADSET = "Untethered Headset"; 78 field public static final String DEVICE_TYPE_WATCH = "Watch"; 79 field public static final int METADATA_COMPANION_APP = 4; // 0x4 80 field public static final int METADATA_DEVICE_TYPE = 17; // 0x11 81 field public static final int METADATA_ENHANCED_SETTINGS_UI_URI = 16; // 0x10 82 field public static final int METADATA_HARDWARE_VERSION = 3; // 0x3 83 field public static final int METADATA_IS_UNTETHERED_HEADSET = 6; // 0x6 84 field public static final int METADATA_MAIN_BATTERY = 18; // 0x12 85 field public static final int METADATA_MAIN_CHARGING = 19; // 0x13 86 field public static final int METADATA_MAIN_ICON = 5; // 0x5 87 field public static final int METADATA_MAIN_LOW_BATTERY_THRESHOLD = 20; // 0x14 88 field public static final int METADATA_MANUFACTURER_NAME = 0; // 0x0 89 field public static final int METADATA_MAX_LENGTH = 2048; // 0x800 90 field public static final int METADATA_MODEL_NAME = 1; // 0x1 91 field public static final int METADATA_SOFTWARE_VERSION = 2; // 0x2 92 field public static final int METADATA_UNTETHERED_CASE_BATTERY = 12; // 0xc 93 field public static final int METADATA_UNTETHERED_CASE_CHARGING = 15; // 0xf 94 field public static final int METADATA_UNTETHERED_CASE_ICON = 9; // 0x9 95 field public static final int METADATA_UNTETHERED_CASE_LOW_BATTERY_THRESHOLD = 23; // 0x17 96 field public static final int METADATA_UNTETHERED_LEFT_BATTERY = 10; // 0xa 97 field public static final int METADATA_UNTETHERED_LEFT_CHARGING = 13; // 0xd 98 field public static final int METADATA_UNTETHERED_LEFT_ICON = 7; // 0x7 99 field public static final int METADATA_UNTETHERED_LEFT_LOW_BATTERY_THRESHOLD = 21; // 0x15 100 field public static final int METADATA_UNTETHERED_RIGHT_BATTERY = 11; // 0xb 101 field public static final int METADATA_UNTETHERED_RIGHT_CHARGING = 14; // 0xe 102 field public static final int METADATA_UNTETHERED_RIGHT_ICON = 8; // 0x8 103 field public static final int METADATA_UNTETHERED_RIGHT_LOW_BATTERY_THRESHOLD = 22; // 0x16 104 } 105 106 public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile { 107 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean connect(android.bluetooth.BluetoothDevice); 108 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disconnect(android.bluetooth.BluetoothDevice); 109 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 110 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 111 } 112 113 public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile { 114 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 115 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public long getHiSyncId(@NonNull android.bluetooth.BluetoothDevice); 116 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 117 } 118 119 public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile { 120 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 121 } 122 123 public final class BluetoothHidHost implements android.bluetooth.BluetoothProfile { 124 method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 125 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 126 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 127 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 128 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.input.profile.action.CONNECTION_STATE_CHANGED"; 129 } 130 131 public final class BluetoothMap implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 132 method public void close(); 133 method protected void finalize(); 134 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 135 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 136 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 137 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.map.profile.action.CONNECTION_STATE_CHANGED"; 138 } 139 140 public final class BluetoothMapClient implements android.bluetooth.BluetoothProfile { 141 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.SEND_SMS}) public boolean sendMessage(@NonNull android.bluetooth.BluetoothDevice, @NonNull java.util.Collection<android.net.Uri>, @NonNull String, @Nullable android.app.PendingIntent, @Nullable android.app.PendingIntent); 142 } 143 144 public final class BluetoothPan implements android.bluetooth.BluetoothProfile { 145 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 146 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 147 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isTetheringOn(); 148 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.TETHER_PRIVILEGED}) public void setBluetoothTethering(boolean); 149 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 150 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED"; 151 field public static final String ACTION_TETHERING_STATE_CHANGED = "android.bluetooth.action.TETHERING_STATE_CHANGED"; 152 field public static final String EXTRA_LOCAL_ROLE = "android.bluetooth.pan.extra.LOCAL_ROLE"; 153 field public static final String EXTRA_TETHERING_STATE = "android.bluetooth.extra.TETHERING_STATE"; 154 field public static final int LOCAL_NAP_ROLE = 1; // 0x1 155 field public static final int LOCAL_PANU_ROLE = 2; // 0x2 156 field public static final int PAN_ROLE_NONE = 0; // 0x0 157 field public static final int REMOTE_NAP_ROLE = 1; // 0x1 158 field public static final int REMOTE_PANU_ROLE = 2; // 0x2 159 field public static final int TETHERING_STATE_OFF = 1; // 0x1 160 field public static final int TETHERING_STATE_ON = 2; // 0x2 161 } 162 163 public class BluetoothPbap implements android.bluetooth.BluetoothProfile { 164 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 165 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 166 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pbap.profile.action.CONNECTION_STATE_CHANGED"; 167 } 168 169 public interface BluetoothProfile { 170 field public static final int A2DP_SINK = 11; // 0xb 171 field public static final int AVRCP_CONTROLLER = 12; // 0xc 172 field public static final int CONNECTION_POLICY_ALLOWED = 100; // 0x64 173 field public static final int CONNECTION_POLICY_FORBIDDEN = 0; // 0x0 174 field public static final int CONNECTION_POLICY_UNKNOWN = -1; // 0xffffffff 175 field public static final int HEADSET_CLIENT = 16; // 0x10 176 field public static final int MAP_CLIENT = 18; // 0x12 177 field public static final int PAN = 5; // 0x5 178 field public static final int PBAP_CLIENT = 17; // 0x11 179 field @Deprecated public static final int PRIORITY_OFF = 0; // 0x0 180 field @Deprecated public static final int PRIORITY_ON = 100; // 0x64 181 } 182 183 public final class BluetoothStatusCodes { 184 field public static final int ERROR_ANOTHER_ACTIVE_OOB_REQUEST = 1000; // 0x3e8 185 } 186 187 public final class BluetoothUuid { 188 method public static boolean containsAnyUuid(@Nullable android.os.ParcelUuid[], @Nullable android.os.ParcelUuid[]); 189 method @NonNull public static android.os.ParcelUuid parseUuidFrom(@Nullable byte[]); 190 field @NonNull public static final android.os.ParcelUuid A2DP_SINK; 191 field @NonNull public static final android.os.ParcelUuid A2DP_SOURCE; 192 field @NonNull public static final android.os.ParcelUuid ADV_AUDIO_DIST; 193 field @NonNull public static final android.os.ParcelUuid AVRCP_CONTROLLER; 194 field @NonNull public static final android.os.ParcelUuid AVRCP_TARGET; 195 field @NonNull public static final android.os.ParcelUuid BASE_UUID; 196 field @NonNull public static final android.os.ParcelUuid BNEP; 197 field @NonNull public static final android.os.ParcelUuid DIP; 198 field @NonNull public static final android.os.ParcelUuid HEARING_AID; 199 field @NonNull public static final android.os.ParcelUuid HFP; 200 field @NonNull public static final android.os.ParcelUuid HFP_AG; 201 field @NonNull public static final android.os.ParcelUuid HID; 202 field @NonNull public static final android.os.ParcelUuid HOGP; 203 field @NonNull public static final android.os.ParcelUuid HSP; 204 field @NonNull public static final android.os.ParcelUuid HSP_AG; 205 field @NonNull public static final android.os.ParcelUuid LE_AUDIO; 206 field @NonNull public static final android.os.ParcelUuid MAP; 207 field @NonNull public static final android.os.ParcelUuid MAS; 208 field @NonNull public static final android.os.ParcelUuid MNS; 209 field @NonNull public static final android.os.ParcelUuid NAP; 210 field @NonNull public static final android.os.ParcelUuid OBEX_OBJECT_PUSH; 211 field @NonNull public static final android.os.ParcelUuid PANU; 212 field @NonNull public static final android.os.ParcelUuid PBAP_PCE; 213 field @NonNull public static final android.os.ParcelUuid PBAP_PSE; 214 field @NonNull public static final android.os.ParcelUuid SAP; 215 field public static final int UUID_BYTES_128_BIT = 16; // 0x10 216 field public static final int UUID_BYTES_16_BIT = 2; // 0x2 217 field public static final int UUID_BYTES_32_BIT = 4; // 0x4 218 field @NonNull public static final android.os.ParcelUuid VOLUME_CONTROL; 219 } 220 221 public final class BufferConstraint implements android.os.Parcelable { 222 ctor public BufferConstraint(int, int, int); 223 method public int describeContents(); 224 method public int getDefaultMillis(); 225 method public int getMaxMillis(); 226 method public int getMinMillis(); 227 method public void writeToParcel(@NonNull android.os.Parcel, int); 228 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BufferConstraint> CREATOR; 229 } 230 231 public final class BufferConstraints implements android.os.Parcelable { 232 ctor public BufferConstraints(@NonNull java.util.List<android.bluetooth.BufferConstraint>); 233 method public int describeContents(); 234 method @Nullable public android.bluetooth.BufferConstraint forCodec(int); 235 method public void writeToParcel(@NonNull android.os.Parcel, int); 236 field public static final int BUFFER_CODEC_MAX_NUM = 32; // 0x20 237 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BufferConstraints> CREATOR; 238 } 239 240 public final class OobData implements android.os.Parcelable { 241 method @NonNull public byte[] getClassOfDevice(); 242 method @NonNull public byte[] getClassicLength(); 243 method @NonNull public byte[] getConfirmationHash(); 244 method @NonNull public byte[] getDeviceAddressWithType(); 245 method @Nullable public byte[] getDeviceName(); 246 method @Nullable public byte[] getLeAppearance(); 247 method @NonNull public int getLeDeviceRole(); 248 method @NonNull public int getLeFlags(); 249 method @Nullable public byte[] getLeTemporaryKey(); 250 method @NonNull public byte[] getRandomizerHash(); 251 field public static final int CLASS_OF_DEVICE_OCTETS = 3; // 0x3 252 field public static final int CONFIRMATION_OCTETS = 16; // 0x10 253 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.OobData> CREATOR; 254 field public static final int DEVICE_ADDRESS_OCTETS = 7; // 0x7 255 field public static final int LE_APPEARANCE_OCTETS = 2; // 0x2 256 field public static final int LE_DEVICE_FLAG_OCTETS = 1; // 0x1 257 field public static final int LE_DEVICE_ROLE_BOTH_PREFER_CENTRAL = 3; // 0x3 258 field public static final int LE_DEVICE_ROLE_BOTH_PREFER_PERIPHERAL = 2; // 0x2 259 field public static final int LE_DEVICE_ROLE_CENTRAL_ONLY = 1; // 0x1 260 field public static final int LE_DEVICE_ROLE_OCTETS = 1; // 0x1 261 field public static final int LE_DEVICE_ROLE_PERIPHERAL_ONLY = 0; // 0x0 262 field public static final int LE_FLAG_BREDR_NOT_SUPPORTED = 2; // 0x2 263 field public static final int LE_FLAG_GENERAL_DISCOVERY_MODE = 1; // 0x1 264 field public static final int LE_FLAG_LIMITED_DISCOVERY_MODE = 0; // 0x0 265 field public static final int LE_FLAG_SIMULTANEOUS_CONTROLLER = 3; // 0x3 266 field public static final int LE_FLAG_SIMULTANEOUS_HOST = 4; // 0x4 267 field public static final int LE_TK_OCTETS = 16; // 0x10 268 field public static final int OOB_LENGTH_OCTETS = 2; // 0x2 269 field public static final int RANDOMIZER_OCTETS = 16; // 0x10 270 } 271 272 public static final class OobData.ClassicBuilder { 273 ctor public OobData.ClassicBuilder(@NonNull byte[], @NonNull byte[], @NonNull byte[]); 274 method @NonNull public android.bluetooth.OobData build(); 275 method @NonNull public android.bluetooth.OobData.ClassicBuilder setClassOfDevice(@NonNull byte[]); 276 method @NonNull public android.bluetooth.OobData.ClassicBuilder setDeviceName(@NonNull byte[]); 277 method @NonNull public android.bluetooth.OobData.ClassicBuilder setRandomizerHash(@NonNull byte[]); 278 } 279 280 public static final class OobData.LeBuilder { 281 ctor public OobData.LeBuilder(@NonNull byte[], @NonNull byte[], int); 282 method @NonNull public android.bluetooth.OobData build(); 283 method @NonNull public android.bluetooth.OobData.LeBuilder setDeviceName(@NonNull byte[]); 284 method @NonNull public android.bluetooth.OobData.LeBuilder setLeFlags(int); 285 method @NonNull public android.bluetooth.OobData.LeBuilder setLeTemporaryKey(@NonNull byte[]); 286 method @NonNull public android.bluetooth.OobData.LeBuilder setRandomizerHash(@NonNull byte[]); 287 } 288 289} 290 291package android.bluetooth.le { 292 293 public final class BluetoothLeScanner { 294 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.UPDATE_DEVICE_STATS}) public void startScanFromSource(android.os.WorkSource, android.bluetooth.le.ScanCallback); 295 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.UPDATE_DEVICE_STATS}) public void startScanFromSource(java.util.List<android.bluetooth.le.ScanFilter>, android.bluetooth.le.ScanSettings, android.os.WorkSource, android.bluetooth.le.ScanCallback); 296 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void startTruncatedScan(java.util.List<android.bluetooth.le.TruncatedFilter>, android.bluetooth.le.ScanSettings, android.bluetooth.le.ScanCallback); 297 } 298 299 public final class ResultStorageDescriptor implements android.os.Parcelable { 300 ctor public ResultStorageDescriptor(int, int, int); 301 method public int describeContents(); 302 method public int getLength(); 303 method public int getOffset(); 304 method public int getType(); 305 method public void writeToParcel(android.os.Parcel, int); 306 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ResultStorageDescriptor> CREATOR; 307 } 308 309 public final class ScanFilter implements android.os.Parcelable { 310 method public int getAddressType(); 311 method @Nullable public byte[] getIrk(); 312 } 313 314 public static final class ScanFilter.Builder { 315 method @NonNull public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(@NonNull String, int); 316 method @NonNull public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(@NonNull String, int, @NonNull byte[]); 317 field public static final int LEN_IRK_OCTETS = 16; // 0x10 318 } 319 320 public final class ScanSettings implements android.os.Parcelable { 321 field public static final int SCAN_MODE_AMBIENT_DISCOVERY = 3; // 0x3 322 field public static final int SCAN_RESULT_TYPE_ABBREVIATED = 1; // 0x1 323 field public static final int SCAN_RESULT_TYPE_FULL = 0; // 0x0 324 } 325 326 public static final class ScanSettings.Builder { 327 method public android.bluetooth.le.ScanSettings.Builder setScanResultType(int); 328 } 329 330 public final class TruncatedFilter { 331 ctor public TruncatedFilter(android.bluetooth.le.ScanFilter, java.util.List<android.bluetooth.le.ResultStorageDescriptor>); 332 method public android.bluetooth.le.ScanFilter getFilter(); 333 method public java.util.List<android.bluetooth.le.ResultStorageDescriptor> getStorageDescriptors(); 334 } 335 336} 337 338