1// Signature format: 2.0 2package android.bluetooth { 3 4 public final class BluetoothA2dp implements android.bluetooth.BluetoothProfile { 5 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void disableOptionalCodecs(@NonNull android.bluetooth.BluetoothDevice); 6 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void enableOptionalCodecs(@NonNull android.bluetooth.BluetoothDevice); 7 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BufferConstraints getBufferConstraints(); 8 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothCodecStatus getCodecStatus(@NonNull android.bluetooth.BluetoothDevice); 9 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 10 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getDynamicBufferSupport(); 11 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int isOptionalCodecsEnabled(@NonNull android.bluetooth.BluetoothDevice); 12 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int isOptionalCodecsSupported(@NonNull android.bluetooth.BluetoothDevice); 13 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setAvrcpAbsoluteVolume(int); 14 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setBufferLengthMillis(int, int); 15 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setCodecConfigPreference(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothCodecConfig); 16 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 17 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setOptionalCodecsEnabled(@NonNull android.bluetooth.BluetoothDevice, int); 18 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACTIVE_DEVICE_CHANGED = "android.bluetooth.a2dp.profile.action.ACTIVE_DEVICE_CHANGED"; 19 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CODEC_CONFIG_CHANGED = "android.bluetooth.a2dp.profile.action.CODEC_CONFIG_CHANGED"; 20 field public static final int DYNAMIC_BUFFER_SUPPORT_A2DP_OFFLOAD = 1; // 0x1 21 field public static final int DYNAMIC_BUFFER_SUPPORT_A2DP_SOFTWARE_ENCODING = 2; // 0x2 22 field public static final int DYNAMIC_BUFFER_SUPPORT_NONE = 0; // 0x0 23 field public static final int OPTIONAL_CODECS_NOT_SUPPORTED = 0; // 0x0 24 field public static final int OPTIONAL_CODECS_PREF_DISABLED = 0; // 0x0 25 field public static final int OPTIONAL_CODECS_PREF_ENABLED = 1; // 0x1 26 field public static final int OPTIONAL_CODECS_PREF_UNKNOWN = -1; // 0xffffffff 27 field public static final int OPTIONAL_CODECS_SUPPORTED = 1; // 0x1 28 field public static final int OPTIONAL_CODECS_SUPPORT_UNKNOWN = -1; // 0xffffffff 29 } 30 31 public final class BluetoothA2dpSink implements android.bluetooth.BluetoothProfile { 32 method public void finalize(); 33 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 34 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isAudioPlaying(@NonNull android.bluetooth.BluetoothDevice); 35 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 36 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp-sink.profile.action.CONNECTION_STATE_CHANGED"; 37 } 38 39 public final class BluetoothActivityEnergyInfo implements android.os.Parcelable { 40 method public int getBluetoothStackState(); 41 method public long getControllerEnergyUsed(); 42 method public long getControllerIdleTimeMillis(); 43 method public long getControllerRxTimeMillis(); 44 method public long getControllerTxTimeMillis(); 45 method public long getTimestampMillis(); 46 method @NonNull public java.util.List<android.bluetooth.UidTraffic> getUidTraffic(); 47 method public boolean isValid(); 48 field public static final int BT_STACK_STATE_INVALID = 0; // 0x0 49 field public static final int BT_STACK_STATE_STATE_ACTIVE = 1; // 0x1 50 field public static final int BT_STACK_STATE_STATE_IDLE = 3; // 0x3 51 field public static final int BT_STACK_STATE_STATE_SCANNING = 2; // 0x2 52 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothActivityEnergyInfo> CREATOR; 53 } 54 55 public final class BluetoothAdapter { 56 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); 57 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean clearBluetooth(); 58 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean disable(boolean); 59 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disableBLE(); 60 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean enableBLE(); 61 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean enableNoAutoConnect(); 62 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); 63 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getActiveDevices(int); 64 method public int getConnectionState(); 65 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public long getDiscoveryEndMillis(); 66 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getMostRecentlyConnectedDevices(); 67 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<java.lang.Integer> getSupportedProfiles(); 68 method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.os.ParcelUuid> getUuidsList(); 69 method public boolean isBleScanAlwaysAvailable(); 70 method public boolean isLeEnabled(); 71 method @NonNull public static String nameForState(int); 72 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean registerBluetoothConnectionCallback(@NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.BluetoothConnectionCallback); 73 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean removeActiveDevice(int); 74 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); 75 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void requestControllerActivityEnergyInfo(@NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.OnBluetoothActivityEnergyInfoCallback); 76 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothSocket retrieveConnectedRfcommSocket(@NonNull java.util.UUID); 77 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); 78 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int setDiscoverableTimeout(@NonNull java.time.Duration); 79 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int setScanMode(int); 80 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int startRfcommServer(@NonNull String, @NonNull java.util.UUID, @NonNull android.app.PendingIntent); 81 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int stopRfcommServer(@NonNull java.util.UUID); 82 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean unregisterBluetoothConnectionCallback(@NonNull android.bluetooth.BluetoothAdapter.BluetoothConnectionCallback); 83 field public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED"; 84 field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE"; 85 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_REQUEST_DISABLE = "android.bluetooth.adapter.action.REQUEST_DISABLE"; 86 field public static final int ACTIVE_DEVICE_ALL = 2; // 0x2 87 field public static final int ACTIVE_DEVICE_AUDIO = 0; // 0x0 88 field public static final int ACTIVE_DEVICE_PHONE_CALL = 1; // 0x1 89 field public static final String EXTRA_RFCOMM_LISTENER_ID = "android.bluetooth.adapter.extra.RFCOMM_LISTENER_ID"; 90 field public static final int STATE_BLE_ON = 15; // 0xf 91 } 92 93 public abstract static class BluetoothAdapter.BluetoothConnectionCallback { 94 ctor public BluetoothAdapter.BluetoothConnectionCallback(); 95 method @NonNull public static String disconnectReasonToString(int); 96 method public void onDeviceConnected(@NonNull android.bluetooth.BluetoothDevice); 97 method public void onDeviceDisconnected(@NonNull android.bluetooth.BluetoothDevice, int); 98 } 99 100 public static interface BluetoothAdapter.OnBluetoothActivityEnergyInfoCallback { 101 method public void onBluetoothActivityEnergyInfoAvailable(@NonNull android.bluetooth.BluetoothActivityEnergyInfo); 102 method public void onBluetoothActivityEnergyInfoError(int); 103 } 104 105 public static interface BluetoothAdapter.OnMetadataChangedListener { 106 method public void onMetadataChanged(@NonNull android.bluetooth.BluetoothDevice, int, @Nullable byte[]); 107 } 108 109 public static interface BluetoothAdapter.OobDataCallback { 110 method public void onError(int); 111 method public void onOobData(int, @NonNull android.bluetooth.OobData); 112 } 113 114 public final class BluetoothClass implements android.os.Parcelable { 115 field public static final int PROFILE_A2DP_SINK = 6; // 0x6 116 field public static final int PROFILE_NAP = 5; // 0x5 117 field public static final int PROFILE_OPP = 2; // 0x2 118 field public static final int PROFILE_PANU = 4; // 0x4 119 } 120 121 public final class BluetoothCsipSetCoordinator implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 122 method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<java.lang.Integer> getAllGroupIds(@Nullable android.os.ParcelUuid); 123 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice); 124 method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.Map<java.lang.Integer,android.os.ParcelUuid> getGroupUuidMapByDevice(@Nullable android.bluetooth.BluetoothDevice); 125 method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.UUID lockGroup(int, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothCsipSetCoordinator.ClientLockCallback); 126 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice, int); 127 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean unlockGroup(@NonNull java.util.UUID); 128 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CSIS_DEVICE_AVAILABLE = "android.bluetooth.action.CSIS_DEVICE_AVAILABLE"; 129 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CSIS_SET_MEMBER_AVAILABLE = "android.bluetooth.action.CSIS_SET_MEMBER_AVAILABLE"; 130 field public static final String EXTRA_CSIS_GROUP_ID = "android.bluetooth.extra.CSIS_GROUP_ID"; 131 field public static final int GROUP_ID_INVALID = -1; // 0xffffffff 132 } 133 134 public static interface BluetoothCsipSetCoordinator.ClientLockCallback { 135 method public void onGroupLockSet(int, int, boolean); 136 } 137 138 public final class BluetoothDevice implements android.os.Parcelable { 139 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean canBondWithoutDialog(); 140 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean cancelBondProcess(); 141 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.MODIFY_PHONE_STATE}) public int connect(); 142 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean createBond(int); 143 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean createBondOutOfBand(int, @Nullable android.bluetooth.OobData, @Nullable android.bluetooth.OobData); 144 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int disconnect(); 145 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean fetchUuidsWithSdp(int); 146 method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public String getAnonymizedAddress(); 147 method @IntRange(from=0xffffff9c, to=100) @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getBatteryLevel(); 148 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public String getIdentityAddress(); 149 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getMessageAccessPermission(); 150 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public byte[] getMetadata(int); 151 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getPhonebookAccessPermission(); 152 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getSimAccessPermission(); 153 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isBondingInitiatedLocally(); 154 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isConnected(); 155 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isEncrypted(); 156 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isInSilenceMode(); 157 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void prepareToEnterProcess(@NonNull android.content.AttributionSource); 158 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean removeBond(); 159 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setLowLatencyAudioAllowed(boolean); 160 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setMessageAccessPermission(int); 161 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setMetadata(int, @NonNull byte[]); 162 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setPhonebookAccessPermission(int); 163 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean setPin(@NonNull String); 164 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setSilenceMode(boolean); 165 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setSimAccessPermission(int); 166 field public static final int ACCESS_ALLOWED = 1; // 0x1 167 field public static final int ACCESS_REJECTED = 2; // 0x2 168 field public static final int ACCESS_UNKNOWN = 0; // 0x0 169 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_BATTERY_LEVEL_CHANGED = "android.bluetooth.device.action.BATTERY_LEVEL_CHANGED"; 170 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_ACCESS_CANCEL = "android.bluetooth.device.action.CONNECTION_ACCESS_CANCEL"; 171 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_ACCESS_REPLY = "android.bluetooth.device.action.CONNECTION_ACCESS_REPLY"; 172 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_ACCESS_REQUEST = "android.bluetooth.device.action.CONNECTION_ACCESS_REQUEST"; 173 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_PAIRING_CANCEL = "android.bluetooth.device.action.PAIRING_CANCEL"; 174 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_SILENCE_MODE_CHANGED = "android.bluetooth.device.action.SILENCE_MODE_CHANGED"; 175 field @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public static final String ACTION_SWITCH_BUFFER_SIZE = "android.bluetooth.device.action.SWITCH_BUFFER_SIZE"; 176 field public static final int BATTERY_LEVEL_BLUETOOTH_OFF = -100; // 0xffffff9c 177 field public static final int BATTERY_LEVEL_UNKNOWN = -1; // 0xffffffff 178 field public static final int CONNECTION_ACCESS_NO = 2; // 0x2 179 field public static final int CONNECTION_ACCESS_YES = 1; // 0x1 180 field public static final String DEVICE_TYPE_DEFAULT = "Default"; 181 field public static final String DEVICE_TYPE_UNTETHERED_HEADSET = "Untethered Headset"; 182 field public static final String DEVICE_TYPE_WATCH = "Watch"; 183 field public static final String EXTRA_ACCESS_REQUEST_TYPE = "android.bluetooth.device.extra.ACCESS_REQUEST_TYPE"; 184 field public static final String EXTRA_ALWAYS_ALLOWED = "android.bluetooth.device.extra.ALWAYS_ALLOWED"; 185 field public static final String EXTRA_BATTERY_LEVEL = "android.bluetooth.device.extra.BATTERY_LEVEL"; 186 field public static final String EXTRA_CONNECTION_ACCESS_RESULT = "android.bluetooth.device.extra.CONNECTION_ACCESS_RESULT"; 187 field public static final String EXTRA_LOW_LATENCY_BUFFER_SIZE = "android.bluetooth.device.extra.LOW_LATENCY_BUFFER_SIZE"; 188 field public static final String EXTRA_PAIRING_INITIATOR = "android.bluetooth.device.extra.PAIRING_INITIATOR"; 189 field public static final int EXTRA_PAIRING_INITIATOR_BACKGROUND = 2; // 0x2 190 field public static final int EXTRA_PAIRING_INITIATOR_FOREGROUND = 1; // 0x1 191 field public static final String EXTRA_UNBOND_REASON = "android.bluetooth.device.extra.REASON"; 192 field public static final int METADATA_COMPANION_APP = 4; // 0x4 193 field public static final int METADATA_DEVICE_TYPE = 17; // 0x11 194 field public static final int METADATA_ENHANCED_SETTINGS_UI_URI = 16; // 0x10 195 field public static final int METADATA_HARDWARE_VERSION = 3; // 0x3 196 field public static final int METADATA_IS_UNTETHERED_HEADSET = 6; // 0x6 197 field public static final int METADATA_MAIN_BATTERY = 18; // 0x12 198 field public static final int METADATA_MAIN_CHARGING = 19; // 0x13 199 field public static final int METADATA_MAIN_ICON = 5; // 0x5 200 field public static final int METADATA_MAIN_LOW_BATTERY_THRESHOLD = 20; // 0x14 201 field public static final int METADATA_MANUFACTURER_NAME = 0; // 0x0 202 field public static final int METADATA_MAX_LENGTH = 2048; // 0x800 203 field public static final int METADATA_MODEL_NAME = 1; // 0x1 204 field public static final int METADATA_SOFTWARE_VERSION = 2; // 0x2 205 field public static final int METADATA_UNTETHERED_CASE_BATTERY = 12; // 0xc 206 field public static final int METADATA_UNTETHERED_CASE_CHARGING = 15; // 0xf 207 field public static final int METADATA_UNTETHERED_CASE_ICON = 9; // 0x9 208 field public static final int METADATA_UNTETHERED_CASE_LOW_BATTERY_THRESHOLD = 23; // 0x17 209 field public static final int METADATA_UNTETHERED_LEFT_BATTERY = 10; // 0xa 210 field public static final int METADATA_UNTETHERED_LEFT_CHARGING = 13; // 0xd 211 field public static final int METADATA_UNTETHERED_LEFT_ICON = 7; // 0x7 212 field public static final int METADATA_UNTETHERED_LEFT_LOW_BATTERY_THRESHOLD = 21; // 0x15 213 field public static final int METADATA_UNTETHERED_RIGHT_BATTERY = 11; // 0xb 214 field public static final int METADATA_UNTETHERED_RIGHT_CHARGING = 14; // 0xe 215 field public static final int METADATA_UNTETHERED_RIGHT_ICON = 8; // 0x8 216 field public static final int METADATA_UNTETHERED_RIGHT_LOW_BATTERY_THRESHOLD = 22; // 0x16 217 field public static final int PAIRING_VARIANT_CONSENT = 3; // 0x3 218 field public static final int PAIRING_VARIANT_DISPLAY_PASSKEY = 4; // 0x4 219 field public static final int PAIRING_VARIANT_DISPLAY_PIN = 5; // 0x5 220 field public static final int PAIRING_VARIANT_OOB_CONSENT = 6; // 0x6 221 field public static final int PAIRING_VARIANT_PASSKEY = 1; // 0x1 222 field public static final int PAIRING_VARIANT_PIN_16_DIGITS = 7; // 0x7 223 field public static final int REQUEST_TYPE_MESSAGE_ACCESS = 3; // 0x3 224 field public static final int REQUEST_TYPE_PHONEBOOK_ACCESS = 2; // 0x2 225 field public static final int REQUEST_TYPE_PROFILE_CONNECTION = 1; // 0x1 226 field public static final int REQUEST_TYPE_SIM_ACCESS = 4; // 0x4 227 field public static final int UNBOND_REASON_AUTH_CANCELED = 3; // 0x3 228 field public static final int UNBOND_REASON_AUTH_FAILED = 1; // 0x1 229 field public static final int UNBOND_REASON_AUTH_REJECTED = 2; // 0x2 230 field public static final int UNBOND_REASON_AUTH_TIMEOUT = 6; // 0x6 231 field public static final int UNBOND_REASON_DISCOVERY_IN_PROGRESS = 5; // 0x5 232 field public static final int UNBOND_REASON_REMOTE_AUTH_CANCELED = 8; // 0x8 233 field public static final int UNBOND_REASON_REMOTE_DEVICE_DOWN = 4; // 0x4 234 field public static final int UNBOND_REASON_REMOVED = 9; // 0x9 235 field public static final int UNBOND_REASON_REPEATED_ATTEMPTS = 7; // 0x7 236 } 237 238 public interface BluetoothDevicePicker { 239 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_DEVICE_SELECTED = "android.bluetooth.devicepicker.action.DEVICE_SELECTED"; 240 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_LAUNCH = "android.bluetooth.devicepicker.action.LAUNCH"; 241 field public static final String EXTRA_FILTER_TYPE = "android.bluetooth.devicepicker.extra.FILTER_TYPE"; 242 field public static final String EXTRA_LAUNCH_CLASS = "android.bluetooth.devicepicker.extra.DEVICE_PICKER_LAUNCH_CLASS"; 243 field public static final String EXTRA_LAUNCH_PACKAGE = "android.bluetooth.devicepicker.extra.LAUNCH_PACKAGE"; 244 field public static final String EXTRA_NEED_AUTH = "android.bluetooth.devicepicker.extra.NEED_AUTH"; 245 field public static final int FILTER_TYPE_ALL = 0; // 0x0 246 field public static final int FILTER_TYPE_AUDIO = 1; // 0x1 247 field public static final int FILTER_TYPE_NAP = 4; // 0x4 248 field public static final int FILTER_TYPE_PANU = 3; // 0x3 249 field public static final int FILTER_TYPE_TRANSFER = 2; // 0x2 250 } 251 252 public final class BluetoothHapClient implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 253 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothHapPresetInfo getActivePresetInfo(@NonNull android.bluetooth.BluetoothDevice); 254 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothHapPresetInfo> getAllPresetInfo(@NonNull android.bluetooth.BluetoothDevice); 255 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 256 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice); 257 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 258 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]); 259 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void registerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothHapClient.Callback); 260 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void selectPreset(@NonNull android.bluetooth.BluetoothDevice, int); 261 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void selectPresetForGroup(int, int); 262 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 263 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setPresetName(@NonNull android.bluetooth.BluetoothDevice, int, @NonNull String); 264 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setPresetNameForGroup(int, int, @NonNull String); 265 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void unregisterCallback(@NonNull android.bluetooth.BluetoothHapClient.Callback); 266 field @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public static final String ACTION_HAP_CONNECTION_STATE_CHANGED = "android.bluetooth.action.HAP_CONNECTION_STATE_CHANGED"; 267 } 268 269 public static interface BluetoothHapClient.Callback { 270 method public void onPresetInfoChanged(@NonNull android.bluetooth.BluetoothDevice, @NonNull java.util.List<android.bluetooth.BluetoothHapPresetInfo>, int); 271 method public void onPresetSelected(@NonNull android.bluetooth.BluetoothDevice, int, int); 272 method public void onPresetSelectionFailed(@NonNull android.bluetooth.BluetoothDevice, int); 273 method public void onPresetSelectionForGroupFailed(int, int); 274 method public void onSetPresetNameFailed(@NonNull android.bluetooth.BluetoothDevice, int); 275 method public void onSetPresetNameForGroupFailed(int, int); 276 } 277 278 public final class BluetoothHapPresetInfo implements android.os.Parcelable { 279 method public int getIndex(); 280 method @NonNull public String getName(); 281 method public boolean isAvailable(); 282 method public boolean isWritable(); 283 method public void writeToParcel(@NonNull android.os.Parcel, int); 284 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHapPresetInfo> CREATOR; 285 } 286 287 public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile { 288 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean connect(android.bluetooth.BluetoothDevice); 289 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int connectAudio(); 290 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disconnect(android.bluetooth.BluetoothDevice); 291 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int disconnectAudio(); 292 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getAudioRouteAllowed(); 293 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getAudioState(@NonNull android.bluetooth.BluetoothDevice); 294 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 295 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isInbandRingingEnabled(); 296 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int setAudioRouteAllowed(boolean); 297 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); 298 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean startScoUsingVirtualVoiceCall(); 299 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean stopScoUsingVirtualVoiceCall(); 300 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACTIVE_DEVICE_CHANGED = "android.bluetooth.headset.profile.action.ACTIVE_DEVICE_CHANGED"; 301 } 302 303 public final class BluetoothHeadsetClient implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 304 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 305 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 306 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 307 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]); 308 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothHeadsetClient.NetworkServiceState getNetworkServiceState(@NonNull android.bluetooth.BluetoothDevice); 309 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 310 field @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.headsetclient.profile.action.CONNECTION_STATE_CHANGED"; 311 field @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public static final String ACTION_NETWORK_SERVICE_STATE_CHANGED = "android.bluetooth.headsetclient.profile.action.NETWORK_SERVICE_STATE_CHANGED"; 312 field public static final String EXTRA_NETWORK_SERVICE_STATE = "android.bluetooth.headsetclient.extra.EXTRA_NETWORK_SERVICE_STATE"; 313 } 314 315 public static final class BluetoothHeadsetClient.NetworkServiceState implements android.os.Parcelable { 316 method @NonNull public android.bluetooth.BluetoothDevice getDevice(); 317 method @Nullable public String getNetworkOperatorName(); 318 method @IntRange(from=0, to=5) public int getSignalStrength(); 319 method public boolean isRoaming(); 320 method public boolean isServiceAvailable(); 321 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHeadsetClient.NetworkServiceState> CREATOR; 322 } 323 324 public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile { 325 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 326 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public long getHiSyncId(@NonNull android.bluetooth.BluetoothDevice); 327 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 328 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setVolume(int); 329 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACTIVE_DEVICE_CHANGED = "android.bluetooth.hearingaid.profile.action.ACTIVE_DEVICE_CHANGED"; 330 field public static final long HI_SYNC_ID_INVALID = 0L; // 0x0L 331 } 332 333 public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile { 334 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 335 } 336 337 public final class BluetoothHidHost implements android.bluetooth.BluetoothProfile { 338 method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 339 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 340 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 341 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 342 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.input.profile.action.CONNECTION_STATE_CHANGED"; 343 } 344 345 public final class BluetoothLeAudio implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 346 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getAudioLocation(@NonNull android.bluetooth.BluetoothDevice); 347 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothLeAudioCodecStatus getCodecStatus(int); 348 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice); 349 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void registerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothLeAudio.Callback); 350 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setCodecConfigPreference(int, @NonNull android.bluetooth.BluetoothLeAudioCodecConfig, @NonNull android.bluetooth.BluetoothLeAudioCodecConfig); 351 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 352 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setVolume(@IntRange(from=0, to=255) int); 353 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void unregisterCallback(@NonNull android.bluetooth.BluetoothLeAudio.Callback); 354 field @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public static final String ACTION_LE_AUDIO_ACTIVE_DEVICE_CHANGED = "android.bluetooth.action.LE_AUDIO_ACTIVE_DEVICE_CHANGED"; 355 field public static final int AUDIO_LOCATION_BACK_CENTER = 256; // 0x100 356 field public static final int AUDIO_LOCATION_BACK_LEFT = 16; // 0x10 357 field public static final int AUDIO_LOCATION_BACK_RIGHT = 32; // 0x20 358 field public static final int AUDIO_LOCATION_BOTTOM_FRONT_CENTER = 2097152; // 0x200000 359 field public static final int AUDIO_LOCATION_BOTTOM_FRONT_LEFT = 4194304; // 0x400000 360 field public static final int AUDIO_LOCATION_BOTTOM_FRONT_RIGHT = 8388608; // 0x800000 361 field public static final int AUDIO_LOCATION_FRONT_CENTER = 4; // 0x4 362 field public static final int AUDIO_LOCATION_FRONT_LEFT = 1; // 0x1 363 field public static final int AUDIO_LOCATION_FRONT_LEFT_OF_CENTER = 64; // 0x40 364 field public static final int AUDIO_LOCATION_FRONT_LEFT_WIDE = 16777216; // 0x1000000 365 field public static final int AUDIO_LOCATION_FRONT_RIGHT = 2; // 0x2 366 field public static final int AUDIO_LOCATION_FRONT_RIGHT_OF_CENTER = 128; // 0x80 367 field public static final int AUDIO_LOCATION_FRONT_RIGHT_WIDE = 33554432; // 0x2000000 368 field public static final int AUDIO_LOCATION_INVALID = 0; // 0x0 369 field public static final int AUDIO_LOCATION_LEFT_SURROUND = 67108864; // 0x4000000 370 field public static final int AUDIO_LOCATION_LOW_FREQ_EFFECTS_ONE = 8; // 0x8 371 field public static final int AUDIO_LOCATION_LOW_FREQ_EFFECTS_TWO = 512; // 0x200 372 field public static final int AUDIO_LOCATION_RIGHT_SURROUND = 134217728; // 0x8000000 373 field public static final int AUDIO_LOCATION_SIDE_LEFT = 1024; // 0x400 374 field public static final int AUDIO_LOCATION_SIDE_RIGHT = 2048; // 0x800 375 field public static final int AUDIO_LOCATION_TOP_BACK_CENTER = 1048576; // 0x100000 376 field public static final int AUDIO_LOCATION_TOP_BACK_LEFT = 65536; // 0x10000 377 field public static final int AUDIO_LOCATION_TOP_BACK_RIGHT = 131072; // 0x20000 378 field public static final int AUDIO_LOCATION_TOP_CENTER = 32768; // 0x8000 379 field public static final int AUDIO_LOCATION_TOP_FRONT_CENTER = 16384; // 0x4000 380 field public static final int AUDIO_LOCATION_TOP_FRONT_LEFT = 4096; // 0x1000 381 field public static final int AUDIO_LOCATION_TOP_FRONT_RIGHT = 8192; // 0x2000 382 field public static final int AUDIO_LOCATION_TOP_SIDE_LEFT = 262144; // 0x40000 383 field public static final int AUDIO_LOCATION_TOP_SIDE_RIGHT = 524288; // 0x80000 384 field public static final String EXTRA_LE_AUDIO_GROUP_ID = "android.bluetooth.extra.LE_AUDIO_GROUP_ID"; 385 } 386 387 public static interface BluetoothLeAudio.Callback { 388 method public void onCodecConfigChanged(int, @NonNull android.bluetooth.BluetoothLeAudioCodecStatus); 389 method public void onGroupNodeAdded(@NonNull android.bluetooth.BluetoothDevice, int); 390 method public void onGroupNodeRemoved(@NonNull android.bluetooth.BluetoothDevice, int); 391 method public void onGroupStatusChanged(int, int); 392 } 393 394 public final class BluetoothLeAudioCodecConfigMetadata implements android.os.Parcelable { 395 method @NonNull public static android.bluetooth.BluetoothLeAudioCodecConfigMetadata fromRawBytes(@NonNull byte[]); 396 method public long getAudioLocation(); 397 method @NonNull public byte[] getRawMetadata(); 398 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeAudioCodecConfigMetadata> CREATOR; 399 } 400 401 public static final class BluetoothLeAudioCodecConfigMetadata.Builder { 402 ctor public BluetoothLeAudioCodecConfigMetadata.Builder(); 403 ctor public BluetoothLeAudioCodecConfigMetadata.Builder(@NonNull android.bluetooth.BluetoothLeAudioCodecConfigMetadata); 404 method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfigMetadata build(); 405 method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfigMetadata.Builder setAudioLocation(long); 406 } 407 408 public final class BluetoothLeAudioContentMetadata implements android.os.Parcelable { 409 method @NonNull public static android.bluetooth.BluetoothLeAudioContentMetadata fromRawBytes(@NonNull byte[]); 410 method @Nullable public String getLanguage(); 411 method @Nullable public String getProgramInfo(); 412 method @NonNull public byte[] getRawMetadata(); 413 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeAudioContentMetadata> CREATOR; 414 } 415 416 public static final class BluetoothLeAudioContentMetadata.Builder { 417 ctor public BluetoothLeAudioContentMetadata.Builder(); 418 ctor public BluetoothLeAudioContentMetadata.Builder(@NonNull android.bluetooth.BluetoothLeAudioContentMetadata); 419 method @NonNull public android.bluetooth.BluetoothLeAudioContentMetadata build(); 420 method @NonNull public android.bluetooth.BluetoothLeAudioContentMetadata.Builder setLanguage(@Nullable String); 421 method @NonNull public android.bluetooth.BluetoothLeAudioContentMetadata.Builder setProgramInfo(@Nullable String); 422 } 423 424 public final class BluetoothLeBroadcast implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 425 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothLeBroadcastMetadata> getAllBroadcastMetadata(); 426 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getMaximumNumberOfBroadcasts(); 427 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isPlaying(int); 428 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void registerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothLeBroadcast.Callback); 429 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void startBroadcast(@NonNull android.bluetooth.BluetoothLeAudioContentMetadata, @Nullable byte[]); 430 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopBroadcast(int); 431 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void unregisterCallback(@NonNull android.bluetooth.BluetoothLeBroadcast.Callback); 432 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void updateBroadcast(int, @NonNull android.bluetooth.BluetoothLeAudioContentMetadata); 433 } 434 435 public static interface BluetoothLeBroadcast.Callback { 436 method public void onBroadcastMetadataChanged(int, @NonNull android.bluetooth.BluetoothLeBroadcastMetadata); 437 method public void onBroadcastStartFailed(int); 438 method public void onBroadcastStarted(int, int); 439 method public void onBroadcastStopFailed(int); 440 method public void onBroadcastStopped(int, int); 441 method public void onBroadcastUpdateFailed(int, int); 442 method public void onBroadcastUpdated(int, int); 443 method public void onPlaybackStarted(int, int); 444 method public void onPlaybackStopped(int, int); 445 } 446 447 public final class BluetoothLeBroadcastAssistant implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 448 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void addSource(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothLeBroadcastMetadata, boolean); 449 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothLeBroadcastReceiveState> getAllSources(@NonNull android.bluetooth.BluetoothDevice); 450 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 451 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 452 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 453 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]); 454 method public int getMaximumSourceCapacity(@NonNull android.bluetooth.BluetoothDevice); 455 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isSearchInProgress(); 456 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void modifySource(@NonNull android.bluetooth.BluetoothDevice, int, @NonNull android.bluetooth.BluetoothLeBroadcastMetadata); 457 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void registerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothLeBroadcastAssistant.Callback); 458 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void removeSource(@NonNull android.bluetooth.BluetoothDevice, int); 459 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 460 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void startSearchingForSources(@NonNull java.util.List<android.bluetooth.le.ScanFilter>); 461 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopSearchingForSources(); 462 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void unregisterCallback(@NonNull android.bluetooth.BluetoothLeBroadcastAssistant.Callback); 463 field @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.action.CONNECTION_STATE_CHANGED"; 464 } 465 466 public static interface BluetoothLeBroadcastAssistant.Callback { 467 method public void onReceiveStateChanged(@NonNull android.bluetooth.BluetoothDevice, int, @NonNull android.bluetooth.BluetoothLeBroadcastReceiveState); 468 method public void onSearchStartFailed(int); 469 method public void onSearchStarted(int); 470 method public void onSearchStopFailed(int); 471 method public void onSearchStopped(int); 472 method public void onSourceAddFailed(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothLeBroadcastMetadata, int); 473 method public void onSourceAdded(@NonNull android.bluetooth.BluetoothDevice, int, int); 474 method public void onSourceFound(@NonNull android.bluetooth.BluetoothLeBroadcastMetadata); 475 method public void onSourceModified(@NonNull android.bluetooth.BluetoothDevice, int, int); 476 method public void onSourceModifyFailed(@NonNull android.bluetooth.BluetoothDevice, int, int); 477 method public void onSourceRemoveFailed(@NonNull android.bluetooth.BluetoothDevice, int, int); 478 method public void onSourceRemoved(@NonNull android.bluetooth.BluetoothDevice, int, int); 479 } 480 481 public final class BluetoothLeBroadcastChannel implements android.os.Parcelable { 482 method public int getChannelIndex(); 483 method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfigMetadata getCodecMetadata(); 484 method public boolean isSelected(); 485 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeBroadcastChannel> CREATOR; 486 } 487 488 public static final class BluetoothLeBroadcastChannel.Builder { 489 ctor public BluetoothLeBroadcastChannel.Builder(); 490 ctor public BluetoothLeBroadcastChannel.Builder(@NonNull android.bluetooth.BluetoothLeBroadcastChannel); 491 method @NonNull public android.bluetooth.BluetoothLeBroadcastChannel build(); 492 method @NonNull public android.bluetooth.BluetoothLeBroadcastChannel.Builder setChannelIndex(int); 493 method @NonNull public android.bluetooth.BluetoothLeBroadcastChannel.Builder setCodecMetadata(@NonNull android.bluetooth.BluetoothLeAudioCodecConfigMetadata); 494 method @NonNull public android.bluetooth.BluetoothLeBroadcastChannel.Builder setSelected(boolean); 495 } 496 497 public final class BluetoothLeBroadcastMetadata implements android.os.Parcelable { 498 method @Nullable public byte[] getBroadcastCode(); 499 method public int getBroadcastId(); 500 method public int getPaSyncInterval(); 501 method @IntRange(from=0, to=16777215) public int getPresentationDelayMicros(); 502 method public int getSourceAddressType(); 503 method public int getSourceAdvertisingSid(); 504 method @NonNull public android.bluetooth.BluetoothDevice getSourceDevice(); 505 method @NonNull public java.util.List<android.bluetooth.BluetoothLeBroadcastSubgroup> getSubgroups(); 506 method public boolean isEncrypted(); 507 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeBroadcastMetadata> CREATOR; 508 field public static final int PA_SYNC_INTERVAL_UNKNOWN = 65535; // 0xffff 509 } 510 511 public static final class BluetoothLeBroadcastMetadata.Builder { 512 ctor public BluetoothLeBroadcastMetadata.Builder(); 513 ctor public BluetoothLeBroadcastMetadata.Builder(@NonNull android.bluetooth.BluetoothLeBroadcastMetadata); 514 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder addSubgroup(@NonNull android.bluetooth.BluetoothLeBroadcastSubgroup); 515 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata build(); 516 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder clearSubgroup(); 517 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setBroadcastCode(@Nullable byte[]); 518 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setBroadcastId(int); 519 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setEncrypted(boolean); 520 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setPaSyncInterval(int); 521 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setPresentationDelayMicros(@IntRange(from=0, to=16777215) int); 522 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setSourceAdvertisingSid(int); 523 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setSourceDevice(@NonNull android.bluetooth.BluetoothDevice, int); 524 } 525 526 public final class BluetoothLeBroadcastReceiveState implements android.os.Parcelable { 527 method @Nullable public byte[] getBadCode(); 528 method public int getBigEncryptionState(); 529 method @NonNull public java.util.List<java.lang.Long> getBisSyncState(); 530 method public int getBroadcastId(); 531 method public int getNumSubgroups(); 532 method public int getPaSyncState(); 533 method public int getSourceAddressType(); 534 method public int getSourceAdvertisingSid(); 535 method @NonNull public android.bluetooth.BluetoothDevice getSourceDevice(); 536 method @IntRange(from=0, to=255) public int getSourceId(); 537 method @NonNull public java.util.List<android.bluetooth.BluetoothLeAudioContentMetadata> getSubgroupMetadata(); 538 field public static final int BIG_ENCRYPTION_STATE_BAD_CODE = 3; // 0x3 539 field public static final int BIG_ENCRYPTION_STATE_CODE_REQUIRED = 1; // 0x1 540 field public static final int BIG_ENCRYPTION_STATE_DECRYPTING = 2; // 0x2 541 field public static final int BIG_ENCRYPTION_STATE_NOT_ENCRYPTED = 0; // 0x0 542 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeBroadcastReceiveState> CREATOR; 543 field public static final int PA_SYNC_STATE_FAILED_TO_SYNCHRONIZE = 3; // 0x3 544 field public static final int PA_SYNC_STATE_IDLE = 0; // 0x0 545 field public static final int PA_SYNC_STATE_NO_PAST = 4; // 0x4 546 field public static final int PA_SYNC_STATE_SYNCHRONIZED = 2; // 0x2 547 field public static final int PA_SYNC_STATE_SYNCINFO_REQUEST = 1; // 0x1 548 } 549 550 public final class BluetoothLeBroadcastSubgroup implements android.os.Parcelable { 551 method @NonNull public java.util.List<android.bluetooth.BluetoothLeBroadcastChannel> getChannels(); 552 method public long getCodecId(); 553 method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfigMetadata getCodecSpecificConfig(); 554 method @NonNull public android.bluetooth.BluetoothLeAudioContentMetadata getContentMetadata(); 555 method public boolean hasChannelPreference(); 556 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeBroadcastSubgroup> CREATOR; 557 } 558 559 public static final class BluetoothLeBroadcastSubgroup.Builder { 560 ctor public BluetoothLeBroadcastSubgroup.Builder(); 561 ctor public BluetoothLeBroadcastSubgroup.Builder(@NonNull android.bluetooth.BluetoothLeBroadcastSubgroup); 562 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup.Builder addChannel(@NonNull android.bluetooth.BluetoothLeBroadcastChannel); 563 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup build(); 564 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup.Builder clearChannel(); 565 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup.Builder setCodecId(long); 566 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup.Builder setCodecSpecificConfig(@NonNull android.bluetooth.BluetoothLeAudioCodecConfigMetadata); 567 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup.Builder setContentMetadata(@NonNull android.bluetooth.BluetoothLeAudioContentMetadata); 568 } 569 570 public final class BluetoothMap implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 571 method public void close(); 572 method protected void finalize(); 573 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 574 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 575 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 576 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.map.profile.action.CONNECTION_STATE_CHANGED"; 577 } 578 579 public final class BluetoothMapClient implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 580 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 581 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 582 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 583 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]); 584 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); 585 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 586 field @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.mapmce.profile.action.CONNECTION_STATE_CHANGED"; 587 } 588 589 public final class BluetoothPan implements android.bluetooth.BluetoothProfile { 590 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 591 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 592 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isTetheringOn(); 593 method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.TETHER_PRIVILEGED}) public void setBluetoothTethering(boolean); 594 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 595 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED"; 596 field public static final String ACTION_TETHERING_STATE_CHANGED = "android.bluetooth.action.TETHERING_STATE_CHANGED"; 597 field public static final String EXTRA_LOCAL_ROLE = "android.bluetooth.pan.extra.LOCAL_ROLE"; 598 field public static final String EXTRA_TETHERING_STATE = "android.bluetooth.extra.TETHERING_STATE"; 599 field public static final int LOCAL_NAP_ROLE = 1; // 0x1 600 field public static final int LOCAL_PANU_ROLE = 2; // 0x2 601 field public static final int PAN_ROLE_NONE = 0; // 0x0 602 field public static final int REMOTE_NAP_ROLE = 1; // 0x1 603 field public static final int REMOTE_PANU_ROLE = 2; // 0x2 604 field public static final int TETHERING_STATE_OFF = 1; // 0x1 605 field public static final int TETHERING_STATE_ON = 2; // 0x2 606 } 607 608 public class BluetoothPbap implements android.bluetooth.BluetoothProfile { 609 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 610 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 611 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pbap.profile.action.CONNECTION_STATE_CHANGED"; 612 } 613 614 public final class BluetoothPbapClient implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 615 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 616 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 617 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 618 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]); 619 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 620 field @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pbapclient.profile.action.CONNECTION_STATE_CHANGED"; 621 } 622 623 public interface BluetoothProfile { 624 method @NonNull public static String getConnectionStateName(int); 625 method @NonNull public static String getProfileName(int); 626 field public static final int A2DP_SINK = 11; // 0xb 627 field public static final int AVRCP_CONTROLLER = 12; // 0xc 628 field public static final int CONNECTION_POLICY_ALLOWED = 100; // 0x64 629 field public static final int CONNECTION_POLICY_FORBIDDEN = 0; // 0x0 630 field public static final int CONNECTION_POLICY_UNKNOWN = -1; // 0xffffffff 631 field public static final int HEADSET_CLIENT = 16; // 0x10 632 field public static final int HID_HOST = 4; // 0x4 633 field public static final int LE_AUDIO_BROADCAST = 26; // 0x1a 634 field public static final int LE_AUDIO_BROADCAST_ASSISTANT = 29; // 0x1d 635 field public static final int MAP = 9; // 0x9 636 field public static final int MAP_CLIENT = 18; // 0x12 637 field public static final int OPP = 20; // 0x14 638 field public static final int PAN = 5; // 0x5 639 field public static final int PBAP = 6; // 0x6 640 field public static final int PBAP_CLIENT = 17; // 0x11 641 field @Deprecated public static final int PRIORITY_OFF = 0; // 0x0 642 field @Deprecated public static final int PRIORITY_ON = 100; // 0x64 643 field public static final int VOLUME_CONTROL = 23; // 0x17 644 } 645 646 public final class BluetoothSap implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 647 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 648 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 649 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.sap.profile.action.CONNECTION_STATE_CHANGED"; 650 } 651 652 public final class BluetoothStatusCodes { 653 field public static final int ALLOWED = 400; // 0x190 654 field public static final int ERROR_ALREADY_IN_TARGET_STATE = 26; // 0x1a 655 field public static final int ERROR_ANOTHER_ACTIVE_OOB_REQUEST = 1000; // 0x3e8 656 field public static final int ERROR_AUDIO_DEVICE_ALREADY_CONNECTED = 1116; // 0x45c 657 field public static final int ERROR_AUDIO_DEVICE_ALREADY_DISCONNECTED = 1117; // 0x45d 658 field public static final int ERROR_AUDIO_ROUTE_BLOCKED = 1118; // 0x45e 659 field public static final int ERROR_BAD_PARAMETERS = 21; // 0x15 660 field public static final int ERROR_CALL_ACTIVE = 1119; // 0x45f 661 field public static final int ERROR_CSIP_GROUP_LOCKED_BY_OTHER = 1208; // 0x4b8 662 field public static final int ERROR_CSIP_INVALID_GROUP_ID = 1207; // 0x4b7 663 field public static final int ERROR_CSIP_LOCKED_GROUP_MEMBER_LOST = 1209; // 0x4b9 664 field public static final int ERROR_HAP_INVALID_PRESET_INDEX = 1211; // 0x4bb 665 field public static final int ERROR_HAP_PRESET_NAME_TOO_LONG = 1210; // 0x4ba 666 field public static final int ERROR_HARDWARE_GENERIC = 20; // 0x14 667 field public static final int ERROR_LE_BROADCAST_ASSISTANT_DUPLICATE_ADDITION = 1203; // 0x4b3 668 field public static final int ERROR_LE_BROADCAST_ASSISTANT_INVALID_SOURCE_ID = 1202; // 0x4b2 669 field public static final int ERROR_LE_BROADCAST_INVALID_BROADCAST_ID = 1200; // 0x4b0 670 field public static final int ERROR_LE_BROADCAST_INVALID_CODE = 1201; // 0x4b1 671 field public static final int ERROR_LE_CONTENT_METADATA_INVALID_LANGUAGE = 1205; // 0x4b5 672 field public static final int ERROR_LE_CONTENT_METADATA_INVALID_OTHER = 1206; // 0x4b6 673 field public static final int ERROR_LE_CONTENT_METADATA_INVALID_PROGRAM_INFO = 1204; // 0x4b4 674 field public static final int ERROR_LOCAL_NOT_ENOUGH_RESOURCES = 22; // 0x16 675 field public static final int ERROR_NOT_ACTIVE_DEVICE = 12; // 0xc 676 field public static final int ERROR_NO_ACTIVE_DEVICES = 13; // 0xd 677 field public static final int ERROR_PROFILE_NOT_CONNECTED = 14; // 0xe 678 field public static final int ERROR_REMOTE_LINK_ERROR = 25; // 0x19 679 field public static final int ERROR_REMOTE_NOT_ENOUGH_RESOURCES = 23; // 0x17 680 field public static final int ERROR_REMOTE_OPERATION_NOT_SUPPORTED = 27; // 0x1b 681 field public static final int ERROR_REMOTE_OPERATION_REJECTED = 24; // 0x18 682 field public static final int ERROR_TIMEOUT = 15; // 0xf 683 field public static final int NOT_ALLOWED = 401; // 0x191 684 field public static final int REASON_LOCAL_APP_REQUEST = 16; // 0x10 685 field public static final int REASON_LOCAL_STACK_REQUEST = 17; // 0x11 686 field public static final int REASON_REMOTE_REQUEST = 18; // 0x12 687 field public static final int REASON_SYSTEM_POLICY = 19; // 0x13 688 field public static final int RFCOMM_LISTENER_FAILED_TO_CLOSE_SERVER_SOCKET = 2004; // 0x7d4 689 field public static final int RFCOMM_LISTENER_FAILED_TO_CREATE_SERVER_SOCKET = 2003; // 0x7d3 690 field public static final int RFCOMM_LISTENER_NO_SOCKET_AVAILABLE = 2005; // 0x7d5 691 field public static final int RFCOMM_LISTENER_OPERATION_FAILED_DIFFERENT_APP = 2002; // 0x7d2 692 field public static final int RFCOMM_LISTENER_OPERATION_FAILED_NO_MATCHING_SERVICE_RECORD = 2001; // 0x7d1 693 field public static final int RFCOMM_LISTENER_START_FAILED_UUID_IN_USE = 2000; // 0x7d0 694 } 695 696 public final class BluetoothUuid { 697 method public static boolean containsAnyUuid(@Nullable android.os.ParcelUuid[], @Nullable android.os.ParcelUuid[]); 698 method @NonNull public static android.os.ParcelUuid parseUuidFrom(@Nullable byte[]); 699 field @NonNull public static final android.os.ParcelUuid A2DP_SINK; 700 field @NonNull public static final android.os.ParcelUuid A2DP_SOURCE; 701 field @NonNull public static final android.os.ParcelUuid ADV_AUDIO_DIST; 702 field @NonNull public static final android.os.ParcelUuid AVRCP; 703 field @NonNull public static final android.os.ParcelUuid AVRCP_CONTROLLER; 704 field @NonNull public static final android.os.ParcelUuid AVRCP_TARGET; 705 field @NonNull public static final android.os.ParcelUuid BASE_UUID; 706 field @NonNull public static final android.os.ParcelUuid BASS; 707 field @NonNull public static final android.os.ParcelUuid BNEP; 708 field @NonNull public static final android.os.ParcelUuid CAP; 709 field @NonNull public static final android.os.ParcelUuid COORDINATED_SET; 710 field @NonNull public static final android.os.ParcelUuid DIP; 711 field @NonNull public static final android.os.ParcelUuid GENERIC_MEDIA_CONTROL; 712 field @NonNull public static final android.os.ParcelUuid HAS; 713 field @NonNull public static final android.os.ParcelUuid HEARING_AID; 714 field @NonNull public static final android.os.ParcelUuid HFP; 715 field @NonNull public static final android.os.ParcelUuid HFP_AG; 716 field @NonNull public static final android.os.ParcelUuid HID; 717 field @NonNull public static final android.os.ParcelUuid HOGP; 718 field @NonNull public static final android.os.ParcelUuid HSP; 719 field @NonNull public static final android.os.ParcelUuid HSP_AG; 720 field @NonNull public static final android.os.ParcelUuid LE_AUDIO; 721 field @NonNull public static final android.os.ParcelUuid MAP; 722 field @NonNull public static final android.os.ParcelUuid MAS; 723 field @NonNull public static final android.os.ParcelUuid MEDIA_CONTROL; 724 field @NonNull public static final android.os.ParcelUuid MNS; 725 field @NonNull public static final android.os.ParcelUuid NAP; 726 field @NonNull public static final android.os.ParcelUuid OBEX_OBJECT_PUSH; 727 field @NonNull public static final android.os.ParcelUuid PANU; 728 field @NonNull public static final android.os.ParcelUuid PBAP_PCE; 729 field @NonNull public static final android.os.ParcelUuid PBAP_PSE; 730 field @NonNull public static final android.os.ParcelUuid SAP; 731 field public static final int UUID_BYTES_128_BIT = 16; // 0x10 732 field public static final int UUID_BYTES_16_BIT = 2; // 0x2 733 field public static final int UUID_BYTES_32_BIT = 4; // 0x4 734 field @NonNull public static final android.os.ParcelUuid VOLUME_CONTROL; 735 } 736 737 public final class BluetoothVolumeControl implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 738 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void close(); 739 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) protected void finalize(); 740 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 741 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 742 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isVolumeOffsetAvailable(@NonNull android.bluetooth.BluetoothDevice); 743 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void registerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothVolumeControl.Callback); 744 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 745 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setVolumeOffset(@NonNull android.bluetooth.BluetoothDevice, @IntRange(from=0xffffff01, to=255) int); 746 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void unregisterCallback(@NonNull android.bluetooth.BluetoothVolumeControl.Callback); 747 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.volume-control.profile.action.CONNECTION_STATE_CHANGED"; 748 } 749 750 public static interface BluetoothVolumeControl.Callback { 751 method public void onVolumeOffsetChanged(@NonNull android.bluetooth.BluetoothDevice, @IntRange(from=0xffffff01, to=255) int); 752 } 753 754 public final class BufferConstraint implements android.os.Parcelable { 755 ctor public BufferConstraint(int, int, int); 756 method public int describeContents(); 757 method public int getDefaultMillis(); 758 method public int getMaxMillis(); 759 method public int getMinMillis(); 760 method public void writeToParcel(@NonNull android.os.Parcel, int); 761 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BufferConstraint> CREATOR; 762 } 763 764 public final class BufferConstraints implements android.os.Parcelable { 765 ctor public BufferConstraints(@NonNull java.util.List<android.bluetooth.BufferConstraint>); 766 method public int describeContents(); 767 method @Nullable public android.bluetooth.BufferConstraint forCodec(int); 768 method public void writeToParcel(@NonNull android.os.Parcel, int); 769 field public static final int BUFFER_CODEC_MAX_NUM = 32; // 0x20 770 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BufferConstraints> CREATOR; 771 } 772 773 public final class OobData implements android.os.Parcelable { 774 method @NonNull public byte[] getClassOfDevice(); 775 method @NonNull public byte[] getClassicLength(); 776 method @NonNull public byte[] getConfirmationHash(); 777 method @NonNull public byte[] getDeviceAddressWithType(); 778 method @Nullable public byte[] getDeviceName(); 779 method @Nullable public byte[] getLeAppearance(); 780 method @NonNull public int getLeDeviceRole(); 781 method @NonNull public int getLeFlags(); 782 method @Nullable public byte[] getLeTemporaryKey(); 783 method @NonNull public byte[] getRandomizerHash(); 784 field public static final int CLASS_OF_DEVICE_OCTETS = 3; // 0x3 785 field public static final int CONFIRMATION_OCTETS = 16; // 0x10 786 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.OobData> CREATOR; 787 field public static final int DEVICE_ADDRESS_OCTETS = 7; // 0x7 788 field public static final int LE_APPEARANCE_OCTETS = 2; // 0x2 789 field public static final int LE_DEVICE_FLAG_OCTETS = 1; // 0x1 790 field public static final int LE_DEVICE_ROLE_BOTH_PREFER_CENTRAL = 3; // 0x3 791 field public static final int LE_DEVICE_ROLE_BOTH_PREFER_PERIPHERAL = 2; // 0x2 792 field public static final int LE_DEVICE_ROLE_CENTRAL_ONLY = 1; // 0x1 793 field public static final int LE_DEVICE_ROLE_OCTETS = 1; // 0x1 794 field public static final int LE_DEVICE_ROLE_PERIPHERAL_ONLY = 0; // 0x0 795 field public static final int LE_FLAG_BREDR_NOT_SUPPORTED = 2; // 0x2 796 field public static final int LE_FLAG_GENERAL_DISCOVERY_MODE = 1; // 0x1 797 field public static final int LE_FLAG_LIMITED_DISCOVERY_MODE = 0; // 0x0 798 field public static final int LE_FLAG_SIMULTANEOUS_CONTROLLER = 3; // 0x3 799 field public static final int LE_FLAG_SIMULTANEOUS_HOST = 4; // 0x4 800 field public static final int LE_TK_OCTETS = 16; // 0x10 801 field public static final int OOB_LENGTH_OCTETS = 2; // 0x2 802 field public static final int RANDOMIZER_OCTETS = 16; // 0x10 803 } 804 805 public static final class OobData.ClassicBuilder { 806 ctor public OobData.ClassicBuilder(@NonNull byte[], @NonNull byte[], @NonNull byte[]); 807 method @NonNull public android.bluetooth.OobData build(); 808 method @NonNull public android.bluetooth.OobData.ClassicBuilder setClassOfDevice(@NonNull byte[]); 809 method @NonNull public android.bluetooth.OobData.ClassicBuilder setDeviceName(@NonNull byte[]); 810 method @NonNull public android.bluetooth.OobData.ClassicBuilder setRandomizerHash(@NonNull byte[]); 811 } 812 813 public static final class OobData.LeBuilder { 814 ctor public OobData.LeBuilder(@NonNull byte[], @NonNull byte[], int); 815 method @NonNull public android.bluetooth.OobData build(); 816 method @NonNull public android.bluetooth.OobData.LeBuilder setDeviceName(@NonNull byte[]); 817 method @NonNull public android.bluetooth.OobData.LeBuilder setLeFlags(int); 818 method @NonNull public android.bluetooth.OobData.LeBuilder setLeTemporaryKey(@NonNull byte[]); 819 method @NonNull public android.bluetooth.OobData.LeBuilder setRandomizerHash(@NonNull byte[]); 820 } 821 822 public final class UidTraffic implements java.lang.Cloneable android.os.Parcelable { 823 method public long getRxBytes(); 824 method public long getTxBytes(); 825 method public int getUid(); 826 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.UidTraffic> CREATOR; 827 } 828 829} 830 831package android.bluetooth.le { 832 833 public final class AdvertiseSettings implements android.os.Parcelable { 834 method public int getOwnAddressType(); 835 } 836 837 public static final class AdvertiseSettings.Builder { 838 method @NonNull public android.bluetooth.le.AdvertiseSettings.Builder setOwnAddressType(int); 839 } 840 841 public final class AdvertisingSetParameters implements android.os.Parcelable { 842 method public int getOwnAddressType(); 843 field public static final int ADDRESS_TYPE_DEFAULT = -1; // 0xffffffff 844 field public static final int ADDRESS_TYPE_PUBLIC = 0; // 0x0 845 field public static final int ADDRESS_TYPE_RANDOM = 1; // 0x1 846 } 847 848 public static final class AdvertisingSetParameters.Builder { 849 method @NonNull public android.bluetooth.le.AdvertisingSetParameters.Builder setOwnAddressType(int); 850 } 851 852 public final class BluetoothLeScanner { 853 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.UPDATE_DEVICE_STATS}) public void startScanFromSource(android.os.WorkSource, android.bluetooth.le.ScanCallback); 854 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); 855 method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void startTruncatedScan(java.util.List<android.bluetooth.le.TruncatedFilter>, android.bluetooth.le.ScanSettings, android.bluetooth.le.ScanCallback); 856 } 857 858 @Deprecated public final class ResultStorageDescriptor implements android.os.Parcelable { 859 ctor @Deprecated public ResultStorageDescriptor(int, int, int); 860 method @Deprecated public int describeContents(); 861 method @Deprecated public int getLength(); 862 method @Deprecated public int getOffset(); 863 method @Deprecated public int getType(); 864 method @Deprecated public void writeToParcel(android.os.Parcel, int); 865 field @Deprecated @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ResultStorageDescriptor> CREATOR; 866 } 867 868 public final class ScanFilter implements android.os.Parcelable { 869 method public int getAddressType(); 870 method @Nullable public byte[] getIrk(); 871 } 872 873 public static final class ScanFilter.Builder { 874 method @NonNull public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(@NonNull String, int); 875 method @NonNull public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(@NonNull String, int, @NonNull byte[]); 876 field public static final int LEN_IRK_OCTETS = 16; // 0x10 877 } 878 879 public final class ScanSettings implements android.os.Parcelable { 880 field public static final int SCAN_MODE_AMBIENT_DISCOVERY = 3; // 0x3 881 field public static final int SCAN_RESULT_TYPE_ABBREVIATED = 1; // 0x1 882 field public static final int SCAN_RESULT_TYPE_FULL = 0; // 0x0 883 } 884 885 public static final class ScanSettings.Builder { 886 method public android.bluetooth.le.ScanSettings.Builder setScanResultType(int); 887 } 888 889 @Deprecated public final class TruncatedFilter { 890 ctor @Deprecated public TruncatedFilter(android.bluetooth.le.ScanFilter, java.util.List<android.bluetooth.le.ResultStorageDescriptor>); 891 method @Deprecated public android.bluetooth.le.ScanFilter getFilter(); 892 method @Deprecated public java.util.List<android.bluetooth.le.ResultStorageDescriptor> getStorageDescriptors(); 893 } 894 895} 896 897