1// Signature format: 2.0 2package android.bluetooth { 3 4 public class AudioInputControl { 5 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getAudioInputStatus(); 6 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getAudioInputType(); 7 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public String getDescription(); 8 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getGainMode(); 9 method @IntRange(from=0xffffff80, to=127) @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getGainSetting(); 10 method @IntRange(from=0xffffff80, to=127) @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getGainSettingMax(); 11 method @IntRange(from=0xffffff80, to=127) @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getGainSettingMin(); 12 method @IntRange(from=0, to=255) @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getGainSettingUnit(); 13 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getMute(); 14 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isDescriptionWritable(); 15 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void registerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.AudioInputControl.AudioInputCallback); 16 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setDescription(@NonNull String); 17 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setGainMode(int); 18 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setGainSetting(@IntRange(from=0xffffff80, to=127) int); 19 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setMute(int); 20 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void unregisterCallback(@NonNull android.bluetooth.AudioInputControl.AudioInputCallback); 21 field public static final int AUDIO_INPUT_STATUS_ACTIVE = 1; // 0x1 22 field public static final int AUDIO_INPUT_STATUS_INACTIVE = 0; // 0x0 23 field public static final int AUDIO_INPUT_STATUS_UNKNOWN = -1; // 0xffffffff 24 field public static final int AUDIO_INPUT_TYPE_AMBIENT = 7; // 0x7 25 field public static final int AUDIO_INPUT_TYPE_ANALOG = 3; // 0x3 26 field public static final int AUDIO_INPUT_TYPE_BLUETOOTH = 1; // 0x1 27 field public static final int AUDIO_INPUT_TYPE_DIGITAL = 4; // 0x4 28 field public static final int AUDIO_INPUT_TYPE_MICROPHONE = 2; // 0x2 29 field public static final int AUDIO_INPUT_TYPE_RADIO = 5; // 0x5 30 field public static final int AUDIO_INPUT_TYPE_STREAMING = 6; // 0x6 31 field public static final int AUDIO_INPUT_TYPE_UNSPECIFIED = 0; // 0x0 32 field public static final int GAIN_MODE_AUTOMATIC = 3; // 0x3 33 field public static final int GAIN_MODE_AUTOMATIC_ONLY = 1; // 0x1 34 field public static final int GAIN_MODE_MANUAL = 2; // 0x2 35 field public static final int GAIN_MODE_MANUAL_ONLY = 0; // 0x0 36 field public static final int MUTE_DISABLED = 2; // 0x2 37 field public static final int MUTE_MUTED = 1; // 0x1 38 field public static final int MUTE_NOT_MUTED = 0; // 0x0 39 } 40 41 public static interface AudioInputControl.AudioInputCallback { 42 method public default void onAudioInputStatusChanged(int); 43 method public default void onDescriptionChanged(@NonNull String); 44 method public default void onGainModeChanged(int); 45 method public default void onGainSettingChanged(int); 46 method public default void onMuteChanged(int); 47 method public default void onSetGainModeFailed(); 48 method public default void onSetGainSettingFailed(); 49 method public default void onSetMuteFailed(); 50 } 51 52 public final class BluetoothA2dp implements android.bluetooth.BluetoothProfile { 53 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void disableOptionalCodecs(@NonNull android.bluetooth.BluetoothDevice); 54 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void enableOptionalCodecs(@NonNull android.bluetooth.BluetoothDevice); 55 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BufferConstraints getBufferConstraints(); 56 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public android.bluetooth.BluetoothCodecStatus getCodecStatus(@NonNull android.bluetooth.BluetoothDevice); 57 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 58 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getDynamicBufferSupport(); 59 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int isOptionalCodecsEnabled(@NonNull android.bluetooth.BluetoothDevice); 60 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int isOptionalCodecsSupported(@NonNull android.bluetooth.BluetoothDevice); 61 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setAvrcpAbsoluteVolume(int); 62 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setBufferLengthMillis(int, int); 63 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public void setCodecConfigPreference(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothCodecConfig); 64 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 65 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setOptionalCodecsEnabled(@NonNull android.bluetooth.BluetoothDevice, int); 66 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACTIVE_DEVICE_CHANGED = "android.bluetooth.a2dp.profile.action.ACTIVE_DEVICE_CHANGED"; 67 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CODEC_CONFIG_CHANGED = "android.bluetooth.a2dp.profile.action.CODEC_CONFIG_CHANGED"; 68 field public static final int DYNAMIC_BUFFER_SUPPORT_A2DP_OFFLOAD = 1; // 0x1 69 field public static final int DYNAMIC_BUFFER_SUPPORT_A2DP_SOFTWARE_ENCODING = 2; // 0x2 70 field public static final int DYNAMIC_BUFFER_SUPPORT_NONE = 0; // 0x0 71 field public static final int OPTIONAL_CODECS_NOT_SUPPORTED = 0; // 0x0 72 field public static final int OPTIONAL_CODECS_PREF_DISABLED = 0; // 0x0 73 field public static final int OPTIONAL_CODECS_PREF_ENABLED = 1; // 0x1 74 field public static final int OPTIONAL_CODECS_PREF_UNKNOWN = -1; // 0xffffffff 75 field public static final int OPTIONAL_CODECS_SUPPORTED = 1; // 0x1 76 field public static final int OPTIONAL_CODECS_SUPPORT_UNKNOWN = -1; // 0xffffffff 77 } 78 79 public final class BluetoothA2dpSink implements android.bluetooth.BluetoothProfile { 80 method public void finalize(); 81 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 82 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 83 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice); 84 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]); 85 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isAudioPlaying(@NonNull android.bluetooth.BluetoothDevice); 86 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 87 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp-sink.profile.action.CONNECTION_STATE_CHANGED"; 88 } 89 90 public final class BluetoothActivityEnergyInfo implements android.os.Parcelable { 91 method public int describeContents(); 92 method public int getBluetoothStackState(); 93 method public long getControllerEnergyUsed(); 94 method public long getControllerIdleTimeMillis(); 95 method public long getControllerRxTimeMillis(); 96 method public long getControllerTxTimeMillis(); 97 method public long getTimestampMillis(); 98 method @NonNull public java.util.List<android.bluetooth.UidTraffic> getUidTraffic(); 99 method public boolean isValid(); 100 method public void writeToParcel(android.os.Parcel, int); 101 field public static final int BT_STACK_STATE_INVALID = 0; // 0x0 102 field public static final int BT_STACK_STATE_STATE_ACTIVE = 1; // 0x1 103 field public static final int BT_STACK_STATE_STATE_IDLE = 3; // 0x3 104 field public static final int BT_STACK_STATE_STATE_SCANNING = 2; // 0x2 105 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothActivityEnergyInfo> CREATOR; 106 } 107 108 public final class BluetoothAdapter { 109 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); 110 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean clearBluetooth(); 111 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public boolean disable(boolean); 112 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disableBLE(); 113 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean enableBLE(); 114 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean enableNoAutoConnect(); 115 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); 116 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getActiveDevices(int); 117 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getBluetoothHciSnoopLoggingMode(); 118 method public int getConnectionState(); 119 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public long getDiscoveryEndMillis(); 120 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.le.DistanceMeasurementManager getDistanceMeasurementManager(); 121 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getMostRecentlyConnectedDevices(); 122 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getOffloadedTransportDiscoveryDataScanSupported(); 123 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.os.Bundle getPreferredAudioProfiles(@NonNull android.bluetooth.BluetoothDevice); 124 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<java.lang.Integer> getSupportedProfiles(); 125 method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.os.ParcelUuid> getUuidsList(); 126 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isAutoOnEnabled(); 127 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isAutoOnSupported(); 128 method public boolean isBleScanAlwaysAvailable(); 129 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int isDistanceMeasurementSupported(); 130 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isLeCocSocketOffloadSupported(); 131 method public boolean isLeEnabled(); 132 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isRfcommSocketOffloadSupported(); 133 method @NonNull public static String nameForState(int); 134 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int notifyActiveDeviceChangeApplied(@NonNull android.bluetooth.BluetoothDevice); 135 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); 136 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void registerBluetoothHciVendorSpecificCallback(@NonNull java.util.Set<java.lang.Integer>, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.BluetoothHciVendorSpecificCallback); 137 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int registerBluetoothQualityReportReadyCallback(@NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.BluetoothQualityReportReadyCallback); 138 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int registerPreferredAudioProfilesChangedCallback(@NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.PreferredAudioProfilesChangedCallback); 139 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean removeActiveDevice(int); 140 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); 141 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); 142 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothSocket retrieveConnectedRfcommSocket(@NonNull java.util.UUID); 143 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void sendBluetoothHciVendorSpecificCommand(@IntRange(from=0, to=1023) int, @NonNull byte[]); 144 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); 145 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setAutoOnEnabled(boolean); 146 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int setBluetoothHciSnoopLoggingMode(int); 147 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int setDiscoverableTimeout(@NonNull java.time.Duration); 148 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int setPreferredAudioProfiles(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.os.Bundle); 149 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int setScanMode(int); 150 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); 151 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int stopRfcommServer(@NonNull java.util.UUID); 152 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean unregisterBluetoothConnectionCallback(@NonNull android.bluetooth.BluetoothAdapter.BluetoothConnectionCallback); 153 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void unregisterBluetoothHciVendorSpecificCallback(@NonNull android.bluetooth.BluetoothAdapter.BluetoothHciVendorSpecificCallback); 154 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int unregisterBluetoothQualityReportReadyCallback(@NonNull android.bluetooth.BluetoothAdapter.BluetoothQualityReportReadyCallback); 155 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int unregisterPreferredAudioProfilesChangedCallback(@NonNull android.bluetooth.BluetoothAdapter.PreferredAudioProfilesChangedCallback); 156 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_AUTO_ON_STATE_CHANGED = "android.bluetooth.action.AUTO_ON_STATE_CHANGED"; 157 field public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED"; 158 field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE"; 159 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_REQUEST_DISABLE = "android.bluetooth.adapter.action.REQUEST_DISABLE"; 160 field public static final int ACTIVE_DEVICE_ALL = 2; // 0x2 161 field public static final int ACTIVE_DEVICE_AUDIO = 0; // 0x0 162 field public static final int ACTIVE_DEVICE_PHONE_CALL = 1; // 0x1 163 field public static final String AUDIO_MODE_DUPLEX = "audio_mode_duplex"; 164 field public static final String AUDIO_MODE_OUTPUT_ONLY = "audio_mode_output_only"; 165 field public static final int AUTO_ON_STATE_DISABLED = 1; // 0x1 166 field public static final int AUTO_ON_STATE_ENABLED = 2; // 0x2 167 field public static final int BT_SNOOP_LOG_MODE_DISABLED = 0; // 0x0 168 field public static final int BT_SNOOP_LOG_MODE_FILTERED = 1; // 0x1 169 field public static final int BT_SNOOP_LOG_MODE_FULL = 2; // 0x2 170 field public static final String EXTRA_AUTO_ON_STATE = "android.bluetooth.extra.AUTO_ON_STATE"; 171 field public static final String EXTRA_RFCOMM_LISTENER_ID = "android.bluetooth.adapter.extra.RFCOMM_LISTENER_ID"; 172 field public static final int STATE_BLE_ON = 15; // 0xf 173 } 174 175 public abstract static class BluetoothAdapter.BluetoothConnectionCallback { 176 ctor public BluetoothAdapter.BluetoothConnectionCallback(); 177 method @NonNull public static String disconnectReasonToString(int); 178 method public void onDeviceConnected(@NonNull android.bluetooth.BluetoothDevice); 179 method public void onDeviceDisconnected(@NonNull android.bluetooth.BluetoothDevice, int); 180 } 181 182 public static interface BluetoothAdapter.BluetoothHciVendorSpecificCallback { 183 method public void onCommandComplete(@IntRange(from=0, to=1023) int, @NonNull byte[]); 184 method public void onCommandStatus(@IntRange(from=0, to=1023) int, @IntRange(from=0, to=255) int); 185 method public void onEvent(@IntRange(from=0, to=254) int, @NonNull byte[]); 186 } 187 188 public static interface BluetoothAdapter.BluetoothQualityReportReadyCallback { 189 method public void onBluetoothQualityReportReady(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothQualityReport, int); 190 } 191 192 public static interface BluetoothAdapter.OnBluetoothActivityEnergyInfoCallback { 193 method public void onBluetoothActivityEnergyInfoAvailable(@NonNull android.bluetooth.BluetoothActivityEnergyInfo); 194 method public void onBluetoothActivityEnergyInfoError(int); 195 } 196 197 public static interface BluetoothAdapter.OnMetadataChangedListener { 198 method public void onMetadataChanged(@NonNull android.bluetooth.BluetoothDevice, int, @Nullable byte[]); 199 } 200 201 public static interface BluetoothAdapter.OobDataCallback { 202 method public void onError(int); 203 method public void onOobData(int, @NonNull android.bluetooth.OobData); 204 } 205 206 public static interface BluetoothAdapter.PreferredAudioProfilesChangedCallback { 207 method public void onPreferredAudioProfilesChanged(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.os.Bundle, int); 208 } 209 210 public static class BluetoothAssignedNumbers.OrganizationId { 211 field public static final int BLUETOOTH_SIG = 1; // 0x1 212 field public static final int WIFI_ALLIANCE_NEIGHBOR_AWARENESS_NETWORKING = 2; // 0x2 213 field public static final int WIFI_ALLIANCE_SERVICE_ADVERTISEMENT = 3; // 0x3 214 } 215 216 public final class BluetoothClass implements android.os.Parcelable { 217 field public static final int PROFILE_A2DP_SINK = 6; // 0x6 218 field public static final int PROFILE_NAP = 5; // 0x5 219 field public static final int PROFILE_OPP = 2; // 0x2 220 field public static final int PROFILE_PANU = 4; // 0x4 221 } 222 223 public final class BluetoothCodecType implements android.os.Parcelable { 224 ctor public BluetoothCodecType(int, long, @NonNull String); 225 method @Nullable public static android.bluetooth.BluetoothCodecType createFromType(int); 226 } 227 228 public final class BluetoothCsipSetCoordinator implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 229 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<java.lang.Integer> getAllGroupIds(@Nullable android.os.ParcelUuid); 230 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice); 231 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.Map<java.lang.Integer,android.os.ParcelUuid> getGroupUuidMapByDevice(@Nullable android.bluetooth.BluetoothDevice); 232 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.UUID lockGroup(int, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothCsipSetCoordinator.ClientLockCallback); 233 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice, int); 234 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean unlockGroup(@NonNull java.util.UUID); 235 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CSIS_DEVICE_AVAILABLE = "android.bluetooth.action.CSIS_DEVICE_AVAILABLE"; 236 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CSIS_SET_MEMBER_AVAILABLE = "android.bluetooth.action.CSIS_SET_MEMBER_AVAILABLE"; 237 field public static final String EXTRA_CSIS_GROUP_ID = "android.bluetooth.extra.CSIS_GROUP_ID"; 238 field public static final int GROUP_ID_INVALID = -1; // 0xffffffff 239 } 240 241 public static interface BluetoothCsipSetCoordinator.ClientLockCallback { 242 method public void onGroupLockSet(int, int, boolean); 243 } 244 245 public final class BluetoothDevice implements android.os.Parcelable { 246 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean canBondWithoutDialog(); 247 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean cancelBondProcess(); 248 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.MODIFY_PHONE_STATE}) public int connect(); 249 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean createBond(int); 250 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean createBondOutOfBand(int, @Nullable android.bluetooth.OobData, @Nullable android.bluetooth.OobData); 251 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int disconnect(); 252 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public boolean fetchUuidsWithSdp(int); 253 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getActiveAudioDevicePolicy(); 254 method @NonNull public String getAnonymizedAddress(); 255 method @IntRange(from=0xffffff9c, to=100) @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getBatteryLevel(); 256 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionHandle(int); 257 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public String getIdentityAddress(); 258 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getMessageAccessPermission(); 259 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public byte[] getMetadata(int); 260 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public String getPackageNameOfBondingApplication(); 261 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getPhonebookAccessPermission(); 262 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothSinkAudioPolicy getRequestedAudioPolicyAsSink(); 263 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getSimAccessPermission(); 264 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isBondingInitiatedLocally(); 265 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isConnected(); 266 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isEncrypted(); 267 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isInSilenceMode(); 268 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isMicrophonePreferredForCalls(); 269 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int isRequestAudioPolicyAsSinkSupported(); 270 method public void prepareToEnterProcess(@NonNull android.content.AttributionSource); 271 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean removeBond(); 272 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int requestAudioPolicyAsSink(@NonNull android.bluetooth.BluetoothSinkAudioPolicy); 273 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int setActiveAudioDevicePolicy(int); 274 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setLowLatencyAudioAllowed(boolean); 275 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setMessageAccessPermission(int); 276 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setMetadata(int, @NonNull byte[]); 277 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int setMicrophonePreferredForCalls(boolean); 278 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setPhonebookAccessPermission(int); 279 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean setPin(@NonNull String); 280 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setSilenceMode(boolean); 281 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setSimAccessPermission(int); 282 field public static final int ACCESS_ALLOWED = 1; // 0x1 283 field public static final int ACCESS_REJECTED = 2; // 0x2 284 field public static final int ACCESS_UNKNOWN = 0; // 0x0 285 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_BATTERY_LEVEL_CHANGED = "android.bluetooth.device.action.BATTERY_LEVEL_CHANGED"; 286 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_ACCESS_CANCEL = "android.bluetooth.device.action.CONNECTION_ACCESS_CANCEL"; 287 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_ACCESS_REPLY = "android.bluetooth.device.action.CONNECTION_ACCESS_REPLY"; 288 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_ACCESS_REQUEST = "android.bluetooth.device.action.CONNECTION_ACCESS_REQUEST"; 289 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_PAIRING_CANCEL = "android.bluetooth.device.action.PAIRING_CANCEL"; 290 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_SILENCE_MODE_CHANGED = "android.bluetooth.device.action.SILENCE_MODE_CHANGED"; 291 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"; 292 field public static final int ACTIVE_AUDIO_DEVICE_POLICY_ALL_PROFILES_ACTIVE_UPON_CONNECTION = 1; // 0x1 293 field public static final int ACTIVE_AUDIO_DEVICE_POLICY_ALL_PROFILES_INACTIVE_UPON_CONNECTION = 2; // 0x2 294 field public static final int ACTIVE_AUDIO_DEVICE_POLICY_DEFAULT = 0; // 0x0 295 field public static final int BATTERY_LEVEL_BLUETOOTH_OFF = -100; // 0xffffff9c 296 field public static final int BATTERY_LEVEL_UNKNOWN = -1; // 0xffffffff 297 field public static final int CONNECTION_ACCESS_NO = 2; // 0x2 298 field public static final int CONNECTION_ACCESS_YES = 1; // 0x1 299 field public static final String DEVICE_TYPE_CARKIT = "Carkit"; 300 field public static final String DEVICE_TYPE_DEFAULT = "Default"; 301 field public static final String DEVICE_TYPE_HEADSET = "Headset"; 302 field public static final String DEVICE_TYPE_HEARING_AID = "HearingAid"; 303 field public static final String DEVICE_TYPE_SPEAKER = "Speaker"; 304 field public static final String DEVICE_TYPE_STYLUS = "Stylus"; 305 field public static final String DEVICE_TYPE_UNTETHERED_HEADSET = "Untethered Headset"; 306 field public static final String DEVICE_TYPE_WATCH = "Watch"; 307 field public static final String EXTRA_ACCESS_REQUEST_TYPE = "android.bluetooth.device.extra.ACCESS_REQUEST_TYPE"; 308 field public static final String EXTRA_ALWAYS_ALLOWED = "android.bluetooth.device.extra.ALWAYS_ALLOWED"; 309 field public static final String EXTRA_BATTERY_LEVEL = "android.bluetooth.device.extra.BATTERY_LEVEL"; 310 field public static final String EXTRA_CONNECTION_ACCESS_RESULT = "android.bluetooth.device.extra.CONNECTION_ACCESS_RESULT"; 311 field public static final String EXTRA_LOW_LATENCY_BUFFER_SIZE = "android.bluetooth.device.extra.LOW_LATENCY_BUFFER_SIZE"; 312 field public static final String EXTRA_PAIRING_INITIATOR = "android.bluetooth.device.extra.PAIRING_INITIATOR"; 313 field public static final int EXTRA_PAIRING_INITIATOR_BACKGROUND = 2; // 0x2 314 field public static final int EXTRA_PAIRING_INITIATOR_FOREGROUND = 1; // 0x1 315 field public static final String EXTRA_UNBOND_REASON = "android.bluetooth.device.extra.REASON"; 316 field public static final int METADATA_COMPANION_APP = 4; // 0x4 317 field public static final int METADATA_DEVICE_TYPE = 17; // 0x11 318 field public static final int METADATA_ENHANCED_SETTINGS_UI_URI = 16; // 0x10 319 field public static final int METADATA_EXCLUSIVE_MANAGER = 29; // 0x1d 320 field public static final int METADATA_HARDWARE_VERSION = 3; // 0x3 321 field public static final int METADATA_IS_UNTETHERED_HEADSET = 6; // 0x6 322 field public static final int METADATA_LE_AUDIO = 26; // 0x1a 323 field public static final int METADATA_MAIN_BATTERY = 18; // 0x12 324 field public static final int METADATA_MAIN_CHARGING = 19; // 0x13 325 field public static final int METADATA_MAIN_ICON = 5; // 0x5 326 field public static final int METADATA_MAIN_LOW_BATTERY_THRESHOLD = 20; // 0x14 327 field public static final int METADATA_MANUFACTURER_NAME = 0; // 0x0 328 field public static final int METADATA_MAX_LENGTH = 2048; // 0x800 329 field public static final int METADATA_MODEL_NAME = 1; // 0x1 330 field public static final int METADATA_SOFTWARE_VERSION = 2; // 0x2 331 field public static final int METADATA_UNTETHERED_CASE_BATTERY = 12; // 0xc 332 field public static final int METADATA_UNTETHERED_CASE_CHARGING = 15; // 0xf 333 field public static final int METADATA_UNTETHERED_CASE_ICON = 9; // 0x9 334 field public static final int METADATA_UNTETHERED_CASE_LOW_BATTERY_THRESHOLD = 23; // 0x17 335 field public static final int METADATA_UNTETHERED_LEFT_BATTERY = 10; // 0xa 336 field public static final int METADATA_UNTETHERED_LEFT_CHARGING = 13; // 0xd 337 field public static final int METADATA_UNTETHERED_LEFT_ICON = 7; // 0x7 338 field public static final int METADATA_UNTETHERED_LEFT_LOW_BATTERY_THRESHOLD = 21; // 0x15 339 field public static final int METADATA_UNTETHERED_RIGHT_BATTERY = 11; // 0xb 340 field public static final int METADATA_UNTETHERED_RIGHT_CHARGING = 14; // 0xe 341 field public static final int METADATA_UNTETHERED_RIGHT_ICON = 8; // 0x8 342 field public static final int METADATA_UNTETHERED_RIGHT_LOW_BATTERY_THRESHOLD = 22; // 0x16 343 field public static final int PAIRING_VARIANT_CONSENT = 3; // 0x3 344 field public static final int PAIRING_VARIANT_DISPLAY_PASSKEY = 4; // 0x4 345 field public static final int PAIRING_VARIANT_DISPLAY_PIN = 5; // 0x5 346 field public static final int PAIRING_VARIANT_OOB_CONSENT = 6; // 0x6 347 field public static final int PAIRING_VARIANT_PASSKEY = 1; // 0x1 348 field public static final int PAIRING_VARIANT_PIN_16_DIGITS = 7; // 0x7 349 field public static final int REQUEST_TYPE_MESSAGE_ACCESS = 3; // 0x3 350 field public static final int REQUEST_TYPE_PHONEBOOK_ACCESS = 2; // 0x2 351 field public static final int REQUEST_TYPE_PROFILE_CONNECTION = 1; // 0x1 352 field public static final int REQUEST_TYPE_SIM_ACCESS = 4; // 0x4 353 field public static final int UNBOND_REASON_AUTH_CANCELED = 3; // 0x3 354 field public static final int UNBOND_REASON_AUTH_FAILED = 1; // 0x1 355 field public static final int UNBOND_REASON_AUTH_REJECTED = 2; // 0x2 356 field public static final int UNBOND_REASON_AUTH_TIMEOUT = 6; // 0x6 357 field public static final int UNBOND_REASON_DISCOVERY_IN_PROGRESS = 5; // 0x5 358 field public static final int UNBOND_REASON_REMOTE_AUTH_CANCELED = 8; // 0x8 359 field public static final int UNBOND_REASON_REMOTE_DEVICE_DOWN = 4; // 0x4 360 field public static final int UNBOND_REASON_REMOVED = 9; // 0x9 361 field public static final int UNBOND_REASON_REPEATED_ATTEMPTS = 7; // 0x7 362 } 363 364 public interface BluetoothDevicePicker { 365 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_DEVICE_SELECTED = "android.bluetooth.devicepicker.action.DEVICE_SELECTED"; 366 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_LAUNCH = "android.bluetooth.devicepicker.action.LAUNCH"; 367 field public static final String EXTRA_FILTER_TYPE = "android.bluetooth.devicepicker.extra.FILTER_TYPE"; 368 field public static final String EXTRA_LAUNCH_CLASS = "android.bluetooth.devicepicker.extra.DEVICE_PICKER_LAUNCH_CLASS"; 369 field public static final String EXTRA_LAUNCH_PACKAGE = "android.bluetooth.devicepicker.extra.LAUNCH_PACKAGE"; 370 field public static final String EXTRA_NEED_AUTH = "android.bluetooth.devicepicker.extra.NEED_AUTH"; 371 field public static final int FILTER_TYPE_ALL = 0; // 0x0 372 field public static final int FILTER_TYPE_AUDIO = 1; // 0x1 373 field public static final int FILTER_TYPE_NAP = 4; // 0x4 374 field public static final int FILTER_TYPE_PANU = 3; // 0x3 375 field public static final int FILTER_TYPE_TRANSFER = 2; // 0x2 376 } 377 378 public final class BluetoothHapClient implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 379 method public void close(); 380 method protected void finalize(); 381 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getActivePresetIndex(@NonNull android.bluetooth.BluetoothDevice); 382 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothHapPresetInfo getActivePresetInfo(@NonNull android.bluetooth.BluetoothDevice); 383 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); 384 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 385 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice); 386 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 387 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]); 388 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getHapGroup(@NonNull android.bluetooth.BluetoothDevice); 389 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getHearingAidType(@NonNull android.bluetooth.BluetoothDevice); 390 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothHapPresetInfo getPresetInfo(@NonNull android.bluetooth.BluetoothDevice, int); 391 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); 392 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void selectPreset(@NonNull android.bluetooth.BluetoothDevice, int); 393 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void selectPresetForGroup(int, int); 394 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 395 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setPresetName(@NonNull android.bluetooth.BluetoothDevice, int, @NonNull String); 396 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setPresetNameForGroup(int, int, @NonNull String); 397 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean supportsDynamicPresets(@NonNull android.bluetooth.BluetoothDevice); 398 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean supportsIndependentPresets(@NonNull android.bluetooth.BluetoothDevice); 399 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean supportsSynchronizedPresets(@NonNull android.bluetooth.BluetoothDevice); 400 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean supportsWritablePresets(@NonNull android.bluetooth.BluetoothDevice); 401 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void switchToNextPreset(@NonNull android.bluetooth.BluetoothDevice); 402 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void switchToNextPresetForGroup(int); 403 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void switchToPreviousPreset(@NonNull android.bluetooth.BluetoothDevice); 404 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void switchToPreviousPresetForGroup(int); 405 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void unregisterCallback(@NonNull android.bluetooth.BluetoothHapClient.Callback); 406 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"; 407 field public static final int PRESET_INDEX_UNAVAILABLE = 0; // 0x0 408 field public static final int TYPE_BANDED = 2; // 0x2 409 field public static final int TYPE_BINAURAL = 0; // 0x0 410 field public static final int TYPE_MONAURAL = 1; // 0x1 411 field public static final int TYPE_RFU = 3; // 0x3 412 } 413 414 public static interface BluetoothHapClient.Callback { 415 method public void onPresetInfoChanged(@NonNull android.bluetooth.BluetoothDevice, @NonNull java.util.List<android.bluetooth.BluetoothHapPresetInfo>, int); 416 method public void onPresetSelected(@NonNull android.bluetooth.BluetoothDevice, int, int); 417 method public void onPresetSelectionFailed(@NonNull android.bluetooth.BluetoothDevice, int); 418 method public void onPresetSelectionForGroupFailed(int, int); 419 method public void onSetPresetNameFailed(@NonNull android.bluetooth.BluetoothDevice, int); 420 method public void onSetPresetNameForGroupFailed(int, int); 421 } 422 423 public final class BluetoothHapPresetInfo implements android.os.Parcelable { 424 method public int describeContents(); 425 method public int getIndex(); 426 method @NonNull public String getName(); 427 method public boolean isAvailable(); 428 method public boolean isWritable(); 429 method public void writeToParcel(@NonNull android.os.Parcel, int); 430 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHapPresetInfo> CREATOR; 431 } 432 433 public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile { 434 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean connect(android.bluetooth.BluetoothDevice); 435 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int connectAudio(); 436 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disconnect(android.bluetooth.BluetoothDevice); 437 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int disconnectAudio(); 438 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getAudioRouteAllowed(); 439 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getAudioState(@NonNull android.bluetooth.BluetoothDevice); 440 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 441 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isInbandRingingEnabled(); 442 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int setAudioRouteAllowed(boolean); 443 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); 444 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean startScoUsingVirtualVoiceCall(); 445 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean stopScoUsingVirtualVoiceCall(); 446 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACTIVE_DEVICE_CHANGED = "android.bluetooth.headset.profile.action.ACTIVE_DEVICE_CHANGED"; 447 } 448 449 public final class BluetoothHeadsetClient implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 450 method public void close(); 451 method protected void finalize(); 452 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 453 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 454 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 455 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]); 456 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothHeadsetClient.NetworkServiceState getNetworkServiceState(@NonNull android.bluetooth.BluetoothDevice); 457 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 458 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"; 459 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"; 460 field public static final String EXTRA_NETWORK_SERVICE_STATE = "android.bluetooth.headsetclient.extra.EXTRA_NETWORK_SERVICE_STATE"; 461 } 462 463 public static final class BluetoothHeadsetClient.NetworkServiceState implements android.os.Parcelable { 464 method public int describeContents(); 465 method @NonNull public android.bluetooth.BluetoothDevice getDevice(); 466 method @Nullable public String getNetworkOperatorName(); 467 method @IntRange(from=0, to=5) public int getSignalStrength(); 468 method public boolean isRoaming(); 469 method public boolean isServiceAvailable(); 470 method public void writeToParcel(@NonNull android.os.Parcel, int); 471 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHeadsetClient.NetworkServiceState> CREATOR; 472 } 473 474 public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile { 475 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothHearingAid.AdvertisementServiceData getAdvertisementServiceData(@NonNull android.bluetooth.BluetoothDevice); 476 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 477 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getDeviceMode(@NonNull android.bluetooth.BluetoothDevice); 478 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getDeviceSide(@NonNull android.bluetooth.BluetoothDevice); 479 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public long getHiSyncId(@NonNull android.bluetooth.BluetoothDevice); 480 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 481 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setVolume(int); 482 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACTIVE_DEVICE_CHANGED = "android.bluetooth.hearingaid.profile.action.ACTIVE_DEVICE_CHANGED"; 483 field public static final long HI_SYNC_ID_INVALID = 0L; // 0x0L 484 field public static final int MODE_BINAURAL = 1; // 0x1 485 field public static final int MODE_MONAURAL = 0; // 0x0 486 field public static final int MODE_UNKNOWN = -1; // 0xffffffff 487 field public static final int SIDE_LEFT = 0; // 0x0 488 field public static final int SIDE_RIGHT = 1; // 0x1 489 field public static final int SIDE_UNKNOWN = -1; // 0xffffffff 490 } 491 492 public static final class BluetoothHearingAid.AdvertisementServiceData implements android.os.Parcelable { 493 method public int describeContents(); 494 method public int getDeviceMode(); 495 method public int getDeviceSide(); 496 method public int getTruncatedHiSyncId(); 497 method public boolean isCsipSupported(); 498 method public boolean isInPairWith(@Nullable android.bluetooth.BluetoothHearingAid.AdvertisementServiceData); 499 method public void writeToParcel(@NonNull android.os.Parcel, int); 500 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHearingAid.AdvertisementServiceData> CREATOR; 501 } 502 503 public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile { 504 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 505 } 506 507 public final class BluetoothHidHost implements android.bluetooth.BluetoothProfile { 508 method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 509 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 510 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 511 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]); 512 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getPreferredTransport(@NonNull android.bluetooth.BluetoothDevice); 513 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 514 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setPreferredTransport(@NonNull android.bluetooth.BluetoothDevice, int); 515 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.input.profile.action.CONNECTION_STATE_CHANGED"; 516 } 517 518 public final class BluetoothLeAudio implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 519 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getAudioLocation(@NonNull android.bluetooth.BluetoothDevice); 520 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getBroadcastToUnicastFallbackGroup(); 521 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothLeAudioCodecStatus getCodecStatus(int); 522 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice); 523 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isInbandRingtoneEnabled(int); 524 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); 525 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setBroadcastToUnicastFallbackGroup(int); 526 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); 527 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 528 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setVolume(@IntRange(from=0, to=255) int); 529 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void unregisterCallback(@NonNull android.bluetooth.BluetoothLeAudio.Callback); 530 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"; 531 field public static final int AUDIO_LOCATION_BACK_CENTER = 256; // 0x100 532 field public static final int AUDIO_LOCATION_BACK_LEFT = 16; // 0x10 533 field public static final int AUDIO_LOCATION_BACK_RIGHT = 32; // 0x20 534 field public static final int AUDIO_LOCATION_BOTTOM_FRONT_CENTER = 2097152; // 0x200000 535 field public static final int AUDIO_LOCATION_BOTTOM_FRONT_LEFT = 4194304; // 0x400000 536 field public static final int AUDIO_LOCATION_BOTTOM_FRONT_RIGHT = 8388608; // 0x800000 537 field public static final int AUDIO_LOCATION_FRONT_CENTER = 4; // 0x4 538 field public static final int AUDIO_LOCATION_FRONT_LEFT = 1; // 0x1 539 field public static final int AUDIO_LOCATION_FRONT_LEFT_OF_CENTER = 64; // 0x40 540 field public static final int AUDIO_LOCATION_FRONT_LEFT_WIDE = 16777216; // 0x1000000 541 field public static final int AUDIO_LOCATION_FRONT_RIGHT = 2; // 0x2 542 field public static final int AUDIO_LOCATION_FRONT_RIGHT_OF_CENTER = 128; // 0x80 543 field public static final int AUDIO_LOCATION_FRONT_RIGHT_WIDE = 33554432; // 0x2000000 544 field @Deprecated public static final int AUDIO_LOCATION_INVALID = 0; // 0x0 545 field public static final int AUDIO_LOCATION_LEFT_SURROUND = 67108864; // 0x4000000 546 field public static final int AUDIO_LOCATION_LOW_FREQ_EFFECTS_ONE = 8; // 0x8 547 field public static final int AUDIO_LOCATION_LOW_FREQ_EFFECTS_TWO = 512; // 0x200 548 field public static final int AUDIO_LOCATION_MONO = 0; // 0x0 549 field public static final int AUDIO_LOCATION_RIGHT_SURROUND = 134217728; // 0x8000000 550 field public static final int AUDIO_LOCATION_SIDE_LEFT = 1024; // 0x400 551 field public static final int AUDIO_LOCATION_SIDE_RIGHT = 2048; // 0x800 552 field public static final int AUDIO_LOCATION_TOP_BACK_CENTER = 1048576; // 0x100000 553 field public static final int AUDIO_LOCATION_TOP_BACK_LEFT = 65536; // 0x10000 554 field public static final int AUDIO_LOCATION_TOP_BACK_RIGHT = 131072; // 0x20000 555 field public static final int AUDIO_LOCATION_TOP_CENTER = 32768; // 0x8000 556 field public static final int AUDIO_LOCATION_TOP_FRONT_CENTER = 16384; // 0x4000 557 field public static final int AUDIO_LOCATION_TOP_FRONT_LEFT = 4096; // 0x1000 558 field public static final int AUDIO_LOCATION_TOP_FRONT_RIGHT = 8192; // 0x2000 559 field public static final int AUDIO_LOCATION_TOP_SIDE_LEFT = 262144; // 0x40000 560 field public static final int AUDIO_LOCATION_TOP_SIDE_RIGHT = 524288; // 0x80000 561 field public static final int AUDIO_LOCATION_UNKNOWN = -2147483648; // 0x80000000 562 field public static final String EXTRA_LE_AUDIO_GROUP_ID = "android.bluetooth.extra.LE_AUDIO_GROUP_ID"; 563 field public static final int GROUP_STREAM_STATUS_IDLE = 0; // 0x0 564 field public static final int GROUP_STREAM_STATUS_STREAMING = 1; // 0x1 565 } 566 567 public static interface BluetoothLeAudio.Callback { 568 method public default void onBroadcastToUnicastFallbackGroupChanged(int); 569 method public void onCodecConfigChanged(int, @NonNull android.bluetooth.BluetoothLeAudioCodecStatus); 570 method public void onGroupNodeAdded(@NonNull android.bluetooth.BluetoothDevice, int); 571 method public void onGroupNodeRemoved(@NonNull android.bluetooth.BluetoothDevice, int); 572 method public void onGroupStatusChanged(int, int); 573 method public default void onGroupStreamStatusChanged(int, int); 574 } 575 576 public final class BluetoothLeAudioCodecConfigMetadata implements android.os.Parcelable { 577 method public int describeContents(); 578 method @NonNull public static android.bluetooth.BluetoothLeAudioCodecConfigMetadata fromRawBytes(@NonNull byte[]); 579 method public long getAudioLocation(); 580 method public int getFrameDuration(); 581 method public int getOctetsPerFrame(); 582 method @NonNull public byte[] getRawMetadata(); 583 method public int getSampleRate(); 584 method public void writeToParcel(android.os.Parcel, int); 585 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeAudioCodecConfigMetadata> CREATOR; 586 } 587 588 public static final class BluetoothLeAudioCodecConfigMetadata.Builder { 589 ctor public BluetoothLeAudioCodecConfigMetadata.Builder(); 590 ctor public BluetoothLeAudioCodecConfigMetadata.Builder(@NonNull android.bluetooth.BluetoothLeAudioCodecConfigMetadata); 591 method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfigMetadata build(); 592 method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfigMetadata.Builder setAudioLocation(long); 593 method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfigMetadata.Builder setFrameDuration(int); 594 method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfigMetadata.Builder setOctetsPerFrame(int); 595 method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfigMetadata.Builder setSampleRate(int); 596 } 597 598 public final class BluetoothLeAudioContentMetadata implements android.os.Parcelable { 599 method public int describeContents(); 600 method @NonNull public static android.bluetooth.BluetoothLeAudioContentMetadata fromRawBytes(@NonNull byte[]); 601 method @Nullable public String getLanguage(); 602 method @Nullable public String getProgramInfo(); 603 method @NonNull public byte[] getRawMetadata(); 604 method public void writeToParcel(android.os.Parcel, int); 605 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeAudioContentMetadata> CREATOR; 606 } 607 608 public static final class BluetoothLeAudioContentMetadata.Builder { 609 ctor public BluetoothLeAudioContentMetadata.Builder(); 610 ctor public BluetoothLeAudioContentMetadata.Builder(@NonNull android.bluetooth.BluetoothLeAudioContentMetadata); 611 method @NonNull public android.bluetooth.BluetoothLeAudioContentMetadata build(); 612 method @NonNull public android.bluetooth.BluetoothLeAudioContentMetadata.Builder setLanguage(@Nullable String); 613 method @NonNull public android.bluetooth.BluetoothLeAudioContentMetadata.Builder setProgramInfo(@Nullable String); 614 } 615 616 public final class BluetoothLeBroadcast implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 617 method public void close(); 618 method protected void finalize(); 619 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothLeBroadcastMetadata> getAllBroadcastMetadata(); 620 method @NonNull public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 621 method public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 622 method @NonNull public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]); 623 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getMaximumNumberOfBroadcasts(); 624 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getMaximumStreamsPerBroadcast(); 625 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getMaximumSubgroupsPerBroadcast(); 626 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isPlaying(int); 627 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); 628 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void startBroadcast(@NonNull android.bluetooth.BluetoothLeAudioContentMetadata, @Nullable byte[]); 629 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void startBroadcast(@NonNull android.bluetooth.BluetoothLeBroadcastSettings); 630 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopBroadcast(int); 631 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void unregisterCallback(@NonNull android.bluetooth.BluetoothLeBroadcast.Callback); 632 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void updateBroadcast(int, @NonNull android.bluetooth.BluetoothLeAudioContentMetadata); 633 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void updateBroadcast(int, @NonNull android.bluetooth.BluetoothLeBroadcastSettings); 634 } 635 636 public static interface BluetoothLeBroadcast.Callback { 637 method public void onBroadcastMetadataChanged(int, @NonNull android.bluetooth.BluetoothLeBroadcastMetadata); 638 method public void onBroadcastStartFailed(int); 639 method public void onBroadcastStarted(int, int); 640 method public void onBroadcastStopFailed(int); 641 method public void onBroadcastStopped(int, int); 642 method public void onBroadcastUpdateFailed(int, int); 643 method public void onBroadcastUpdated(int, int); 644 method public void onPlaybackStarted(int, int); 645 method public void onPlaybackStopped(int, int); 646 } 647 648 public final class BluetoothLeBroadcastAssistant implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 649 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); 650 method public void close(); 651 method protected void finalize(); 652 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); 653 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 654 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 655 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 656 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]); 657 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getMaximumSourceCapacity(@NonNull android.bluetooth.BluetoothDevice); 658 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothLeBroadcastMetadata getSourceMetadata(@NonNull android.bluetooth.BluetoothDevice, @IntRange(from=0, to=255) int); 659 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isSearchInProgress(); 660 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); 661 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); 662 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void removeSource(@NonNull android.bluetooth.BluetoothDevice, int); 663 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 664 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void startSearchingForSources(@NonNull java.util.List<android.bluetooth.le.ScanFilter>); 665 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void stopSearchingForSources(); 666 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void unregisterCallback(@NonNull android.bluetooth.BluetoothLeBroadcastAssistant.Callback); 667 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"; 668 } 669 670 public static interface BluetoothLeBroadcastAssistant.Callback { 671 method public void onReceiveStateChanged(@NonNull android.bluetooth.BluetoothDevice, int, @NonNull android.bluetooth.BluetoothLeBroadcastReceiveState); 672 method public void onSearchStartFailed(int); 673 method public void onSearchStarted(int); 674 method public void onSearchStopFailed(int); 675 method public void onSearchStopped(int); 676 method public void onSourceAddFailed(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothLeBroadcastMetadata, int); 677 method public void onSourceAdded(@NonNull android.bluetooth.BluetoothDevice, int, int); 678 method public void onSourceFound(@NonNull android.bluetooth.BluetoothLeBroadcastMetadata); 679 method public default void onSourceLost(int); 680 method public void onSourceModified(@NonNull android.bluetooth.BluetoothDevice, int, int); 681 method public void onSourceModifyFailed(@NonNull android.bluetooth.BluetoothDevice, int, int); 682 method public void onSourceRemoveFailed(@NonNull android.bluetooth.BluetoothDevice, int, int); 683 method public void onSourceRemoved(@NonNull android.bluetooth.BluetoothDevice, int, int); 684 } 685 686 public final class BluetoothLeBroadcastChannel implements android.os.Parcelable { 687 method public int describeContents(); 688 method public int getChannelIndex(); 689 method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfigMetadata getCodecMetadata(); 690 method public boolean isSelected(); 691 method public void writeToParcel(android.os.Parcel, int); 692 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeBroadcastChannel> CREATOR; 693 } 694 695 public static final class BluetoothLeBroadcastChannel.Builder { 696 ctor public BluetoothLeBroadcastChannel.Builder(); 697 ctor public BluetoothLeBroadcastChannel.Builder(@NonNull android.bluetooth.BluetoothLeBroadcastChannel); 698 method @NonNull public android.bluetooth.BluetoothLeBroadcastChannel build(); 699 method @NonNull public android.bluetooth.BluetoothLeBroadcastChannel.Builder setChannelIndex(int); 700 method @NonNull public android.bluetooth.BluetoothLeBroadcastChannel.Builder setCodecMetadata(@NonNull android.bluetooth.BluetoothLeAudioCodecConfigMetadata); 701 method @NonNull public android.bluetooth.BluetoothLeBroadcastChannel.Builder setSelected(boolean); 702 } 703 704 public final class BluetoothLeBroadcastMetadata implements android.os.Parcelable { 705 method public int describeContents(); 706 method public int getAudioConfigQuality(); 707 method @Nullable public byte[] getBroadcastCode(); 708 method public int getBroadcastId(); 709 method @Nullable public String getBroadcastName(); 710 method public int getPaSyncInterval(); 711 method @IntRange(from=0, to=16777215) public int getPresentationDelayMicros(); 712 method @Nullable public android.bluetooth.BluetoothLeAudioContentMetadata getPublicBroadcastMetadata(); 713 method @IntRange(from=0xffffff81, to=127) public int getRssi(); 714 method public int getSourceAddressType(); 715 method public int getSourceAdvertisingSid(); 716 method @NonNull public android.bluetooth.BluetoothDevice getSourceDevice(); 717 method @NonNull public java.util.List<android.bluetooth.BluetoothLeBroadcastSubgroup> getSubgroups(); 718 method public boolean isEncrypted(); 719 method public boolean isPublicBroadcast(); 720 method public void writeToParcel(android.os.Parcel, int); 721 field public static final int AUDIO_CONFIG_QUALITY_HIGH = 2; // 0x2 722 field public static final int AUDIO_CONFIG_QUALITY_NONE = 0; // 0x0 723 field public static final int AUDIO_CONFIG_QUALITY_STANDARD = 1; // 0x1 724 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeBroadcastMetadata> CREATOR; 725 field public static final int PA_SYNC_INTERVAL_UNKNOWN = 65535; // 0xffff 726 field public static final int RSSI_UNKNOWN = 127; // 0x7f 727 } 728 729 public static final class BluetoothLeBroadcastMetadata.Builder { 730 ctor public BluetoothLeBroadcastMetadata.Builder(); 731 ctor public BluetoothLeBroadcastMetadata.Builder(@NonNull android.bluetooth.BluetoothLeBroadcastMetadata); 732 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder addSubgroup(@NonNull android.bluetooth.BluetoothLeBroadcastSubgroup); 733 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata build(); 734 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder clearSubgroup(); 735 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setAudioConfigQuality(int); 736 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setBroadcastCode(@Nullable byte[]); 737 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setBroadcastId(int); 738 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setBroadcastName(@Nullable String); 739 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setEncrypted(boolean); 740 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setPaSyncInterval(int); 741 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setPresentationDelayMicros(@IntRange(from=0, to=16777215) int); 742 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setPublicBroadcast(boolean); 743 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setPublicBroadcastMetadata(@Nullable android.bluetooth.BluetoothLeAudioContentMetadata); 744 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setRssi(@IntRange(from=0xffffff81, to=127) int); 745 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setSourceAdvertisingSid(int); 746 method @NonNull public android.bluetooth.BluetoothLeBroadcastMetadata.Builder setSourceDevice(@NonNull android.bluetooth.BluetoothDevice, int); 747 } 748 749 public final class BluetoothLeBroadcastReceiveState implements android.os.Parcelable { 750 method public int describeContents(); 751 method @Nullable public byte[] getBadCode(); 752 method public int getBigEncryptionState(); 753 method @NonNull public java.util.List<java.lang.Long> getBisSyncState(); 754 method public int getBroadcastId(); 755 method public int getNumSubgroups(); 756 method public int getPaSyncState(); 757 method public int getSourceAddressType(); 758 method public int getSourceAdvertisingSid(); 759 method @NonNull public android.bluetooth.BluetoothDevice getSourceDevice(); 760 method @IntRange(from=0, to=255) public int getSourceId(); 761 method @NonNull public java.util.List<android.bluetooth.BluetoothLeAudioContentMetadata> getSubgroupMetadata(); 762 method public void writeToParcel(android.os.Parcel, int); 763 field public static final int BIG_ENCRYPTION_STATE_BAD_CODE = 3; // 0x3 764 field public static final int BIG_ENCRYPTION_STATE_CODE_REQUIRED = 1; // 0x1 765 field public static final int BIG_ENCRYPTION_STATE_DECRYPTING = 2; // 0x2 766 field public static final int BIG_ENCRYPTION_STATE_NOT_ENCRYPTED = 0; // 0x0 767 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeBroadcastReceiveState> CREATOR; 768 field public static final int PA_SYNC_STATE_FAILED_TO_SYNCHRONIZE = 3; // 0x3 769 field public static final int PA_SYNC_STATE_IDLE = 0; // 0x0 770 field public static final int PA_SYNC_STATE_NO_PAST = 4; // 0x4 771 field public static final int PA_SYNC_STATE_SYNCHRONIZED = 2; // 0x2 772 field public static final int PA_SYNC_STATE_SYNCINFO_REQUEST = 1; // 0x1 773 } 774 775 public final class BluetoothLeBroadcastSettings implements android.os.Parcelable { 776 method public int describeContents(); 777 method @Nullable public byte[] getBroadcastCode(); 778 method @Nullable public String getBroadcastName(); 779 method @Nullable public android.bluetooth.BluetoothLeAudioContentMetadata getPublicBroadcastMetadata(); 780 method @NonNull public java.util.List<android.bluetooth.BluetoothLeBroadcastSubgroupSettings> getSubgroupSettings(); 781 method public boolean isPublicBroadcast(); 782 method public void writeToParcel(android.os.Parcel, int); 783 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeBroadcastSettings> CREATOR; 784 } 785 786 public static final class BluetoothLeBroadcastSettings.Builder { 787 ctor public BluetoothLeBroadcastSettings.Builder(); 788 ctor public BluetoothLeBroadcastSettings.Builder(@NonNull android.bluetooth.BluetoothLeBroadcastSettings); 789 method @NonNull public android.bluetooth.BluetoothLeBroadcastSettings.Builder addSubgroupSettings(@NonNull android.bluetooth.BluetoothLeBroadcastSubgroupSettings); 790 method @NonNull public android.bluetooth.BluetoothLeBroadcastSettings build(); 791 method @NonNull public android.bluetooth.BluetoothLeBroadcastSettings.Builder clearSubgroupSettings(); 792 method @NonNull public android.bluetooth.BluetoothLeBroadcastSettings.Builder setBroadcastCode(@Nullable byte[]); 793 method @NonNull public android.bluetooth.BluetoothLeBroadcastSettings.Builder setBroadcastName(@Nullable String); 794 method @NonNull public android.bluetooth.BluetoothLeBroadcastSettings.Builder setPublicBroadcast(boolean); 795 method @NonNull public android.bluetooth.BluetoothLeBroadcastSettings.Builder setPublicBroadcastMetadata(@Nullable android.bluetooth.BluetoothLeAudioContentMetadata); 796 } 797 798 public final class BluetoothLeBroadcastSubgroup implements android.os.Parcelable { 799 method public int describeContents(); 800 method @NonNull public java.util.List<android.bluetooth.BluetoothLeBroadcastChannel> getChannels(); 801 method public long getCodecId(); 802 method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfigMetadata getCodecSpecificConfig(); 803 method @NonNull public android.bluetooth.BluetoothLeAudioContentMetadata getContentMetadata(); 804 method public boolean hasChannelPreference(); 805 method public void writeToParcel(android.os.Parcel, int); 806 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeBroadcastSubgroup> CREATOR; 807 } 808 809 public static final class BluetoothLeBroadcastSubgroup.Builder { 810 ctor public BluetoothLeBroadcastSubgroup.Builder(); 811 ctor public BluetoothLeBroadcastSubgroup.Builder(@NonNull android.bluetooth.BluetoothLeBroadcastSubgroup); 812 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup.Builder addChannel(@NonNull android.bluetooth.BluetoothLeBroadcastChannel); 813 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup build(); 814 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup.Builder clearChannel(); 815 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup.Builder setCodecId(long); 816 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup.Builder setCodecSpecificConfig(@NonNull android.bluetooth.BluetoothLeAudioCodecConfigMetadata); 817 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroup.Builder setContentMetadata(@NonNull android.bluetooth.BluetoothLeAudioContentMetadata); 818 } 819 820 public final class BluetoothLeBroadcastSubgroupSettings implements android.os.Parcelable { 821 method public int describeContents(); 822 method @NonNull public android.bluetooth.BluetoothLeAudioContentMetadata getContentMetadata(); 823 method public int getPreferredQuality(); 824 method public void writeToParcel(android.os.Parcel, int); 825 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeBroadcastSubgroupSettings> CREATOR; 826 field public static final int QUALITY_HIGH = 1; // 0x1 827 field public static final int QUALITY_STANDARD = 0; // 0x0 828 } 829 830 public static final class BluetoothLeBroadcastSubgroupSettings.Builder { 831 ctor public BluetoothLeBroadcastSubgroupSettings.Builder(); 832 ctor public BluetoothLeBroadcastSubgroupSettings.Builder(@NonNull android.bluetooth.BluetoothLeBroadcastSubgroupSettings); 833 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroupSettings build(); 834 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroupSettings.Builder setContentMetadata(@NonNull android.bluetooth.BluetoothLeAudioContentMetadata); 835 method @NonNull public android.bluetooth.BluetoothLeBroadcastSubgroupSettings.Builder setPreferredQuality(int); 836 } 837 838 public final class BluetoothMap implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 839 method public void close(); 840 method protected void finalize(); 841 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 842 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 843 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice); 844 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]); 845 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 846 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.map.profile.action.CONNECTION_STATE_CHANGED"; 847 } 848 849 public final class BluetoothMapClient implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 850 method public void close(); 851 method protected void finalize(); 852 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 853 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 854 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 855 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]); 856 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); 857 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 858 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"; 859 } 860 861 public final class BluetoothPan implements android.bluetooth.BluetoothProfile { 862 method protected void finalize(); 863 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 864 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 865 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]); 866 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isTetheringOn(); 867 method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.TETHER_PRIVILEGED}) public void setBluetoothTethering(boolean); 868 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 869 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED"; 870 field public static final String ACTION_TETHERING_STATE_CHANGED = "android.bluetooth.action.TETHERING_STATE_CHANGED"; 871 field public static final String EXTRA_LOCAL_ROLE = "android.bluetooth.pan.extra.LOCAL_ROLE"; 872 field public static final String EXTRA_TETHERING_STATE = "android.bluetooth.extra.TETHERING_STATE"; 873 field public static final int LOCAL_NAP_ROLE = 1; // 0x1 874 field public static final int LOCAL_PANU_ROLE = 2; // 0x2 875 field public static final int PAN_ROLE_NONE = 0; // 0x0 876 field public static final int REMOTE_NAP_ROLE = 1; // 0x1 877 field public static final int REMOTE_PANU_ROLE = 2; // 0x2 878 field public static final int TETHERING_STATE_OFF = 1; // 0x1 879 field public static final int TETHERING_STATE_ON = 2; // 0x2 880 } 881 882 public class BluetoothPbap implements android.bluetooth.BluetoothProfile { 883 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 884 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 885 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]); 886 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 887 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pbap.profile.action.CONNECTION_STATE_CHANGED"; 888 } 889 890 public final class BluetoothPbapClient implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 891 method public void close(); 892 method protected void finalize(); 893 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 894 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 895 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice); 896 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]); 897 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 898 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"; 899 } 900 901 public interface BluetoothProfile { 902 method @NonNull public static String getConnectionStateName(int); 903 method @NonNull public static String getProfileName(int); 904 field public static final int A2DP_SINK = 11; // 0xb 905 field public static final int AVRCP_CONTROLLER = 12; // 0xc 906 field public static final int CONNECTION_POLICY_ALLOWED = 100; // 0x64 907 field public static final int CONNECTION_POLICY_FORBIDDEN = 0; // 0x0 908 field public static final int CONNECTION_POLICY_UNKNOWN = -1; // 0xffffffff 909 field public static final int HEADSET_CLIENT = 16; // 0x10 910 field public static final int HID_HOST = 4; // 0x4 911 field public static final int LE_AUDIO_BROADCAST = 26; // 0x1a 912 field public static final int LE_AUDIO_BROADCAST_ASSISTANT = 29; // 0x1d 913 field public static final int MAP = 9; // 0x9 914 field public static final int MAP_CLIENT = 18; // 0x12 915 field public static final int OPP = 20; // 0x14 916 field public static final int PAN = 5; // 0x5 917 field public static final int PBAP = 6; // 0x6 918 field public static final int PBAP_CLIENT = 17; // 0x11 919 field @Deprecated public static final int PRIORITY_OFF = 0; // 0x0 920 field @Deprecated public static final int PRIORITY_ON = 100; // 0x64 921 field public static final int VOLUME_CONTROL = 23; // 0x17 922 } 923 924 public final class BluetoothQualityReport implements android.os.Parcelable { 925 method public int describeContents(); 926 method @Nullable public android.bluetooth.BluetoothClass getBluetoothClass(); 927 method @Nullable public android.bluetooth.BluetoothQualityReport.BqrCommon getBqrCommon(); 928 method @Nullable public android.os.Parcelable getBqrEvent(); 929 method public int getLmpSubVersion(); 930 method public int getLmpVersion(); 931 method public int getManufacturerId(); 932 method public int getQualityReportId(); 933 method @Nullable public String getRemoteAddress(); 934 method @Nullable public String getRemoteName(); 935 method @NonNull public static String qualityReportIdToString(int); 936 method public void writeToParcel(@NonNull android.os.Parcel, int); 937 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothQualityReport> CREATOR; 938 field public static final int QUALITY_REPORT_ID_A2DP_CHOPPY = 3; // 0x3 939 field public static final int QUALITY_REPORT_ID_APPROACH_LSTO = 2; // 0x2 940 field public static final int QUALITY_REPORT_ID_CONN_FAIL = 8; // 0x8 941 field public static final int QUALITY_REPORT_ID_ENERGY_MONITOR = 6; // 0x6 942 field public static final int QUALITY_REPORT_ID_MONITOR = 1; // 0x1 943 field public static final int QUALITY_REPORT_ID_RF_STATS = 9; // 0x9 944 field public static final int QUALITY_REPORT_ID_SCO_CHOPPY = 4; // 0x4 945 } 946 947 public static final class BluetoothQualityReport.BqrCommon implements android.os.Parcelable { 948 method @NonNull public static String connectionRoleToString(int); 949 method public int describeContents(); 950 method public int getAfhSelectUnidealChannelCount(); 951 method public int getCalFailedItemCount(); 952 method public int getCoexInfoMask(); 953 method public int getConnectionHandle(); 954 method public int getConnectionRole(); 955 method public long getCrcErrorPackets(); 956 method public long getFlowOffCount(); 957 method public long getLastFlowOnTimestamp(); 958 method public long getLastTxAckTimestamp(); 959 method public int getLsto(); 960 method public long getNakCount(); 961 method public long getNoRxCount(); 962 method public long getOverflowCount(); 963 method public int getPacketType(); 964 method public long getPiconetClock(); 965 method public long getRetransmissionCount(); 966 method public int getRssi(); 967 method public long getRxDupPackets(); 968 method public long getRxUnRecvPackets(); 969 method public int getSnr(); 970 method public long getTxFlushPackets(); 971 method public long getTxLastSubeventPackets(); 972 method public int getTxPowerLevel(); 973 method public long getTxTotalPackets(); 974 method public long getTxUnackPackets(); 975 method public long getUnderflowCount(); 976 method public int getUnusedAfhChannelCount(); 977 method @Nullable public static String packetTypeToString(int); 978 method public void writeToParcel(@NonNull android.os.Parcel, int); 979 field public static final int CONNECTION_ROLE_CENTRAL = 0; // 0x0 980 field public static final int CONNECTION_ROLE_PERIPHERAL = 1; // 0x1 981 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothQualityReport.BqrCommon> CREATOR; 982 } 983 984 public static final class BluetoothQualityReport.BqrConnectFail implements android.os.Parcelable { 985 method @NonNull public static String connectFailIdToString(int); 986 method public int describeContents(); 987 method public int getFailReason(); 988 method public void writeToParcel(@NonNull android.os.Parcel, int); 989 field public static final int CONNECT_FAIL_ID_ACL_ALREADY_EXIST = 11; // 0xb 990 field public static final int CONNECT_FAIL_ID_CONNECTION_TIMEOUT = 8; // 0x8 991 field public static final int CONNECT_FAIL_ID_CONTROLLER_BUSY = 58; // 0x3a 992 field public static final int CONNECT_FAIL_ID_NO_ERROR = 0; // 0x0 993 field public static final int CONNECT_FAIL_ID_PAGE_TIMEOUT = 4; // 0x4 994 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothQualityReport.BqrConnectFail> CREATOR; 995 } 996 997 public static final class BluetoothQualityReport.BqrEnergyMonitor implements android.os.Parcelable { 998 method public int describeContents(); 999 method public long getActiveStateEnterCount(); 1000 method public long getActiveStateTotalTimeMillis(); 1001 method public int getAverageCurrentConsumptionMicroamps(); 1002 method public int getBredrAverageTxPowerLeveldBm(); 1003 method public long getBredrRxStateEnterCount(); 1004 method public long getBredrRxTotalTimeMillis(); 1005 method public long getBredrTxStateEnterCount(); 1006 method public long getBredrTxTotalTimeMillis(); 1007 method public long getIdleStateEnterCount(); 1008 method public long getIdleStateTotalTimeMillis(); 1009 method public int getLeAverageTxPowerLeveldBm(); 1010 method public long getLeRxStateEnterCount(); 1011 method public long getLeRxTotalTimeMillis(); 1012 method public long getLeTsTotalTimeMillis(); 1013 method public long getLeTxStateEnterCount(); 1014 method public long getPowerDataTotalTimeMillis(); 1015 method public long getRxDualChainActiveDurationMillis(); 1016 method public long getRxSingleChainActiveDurationMillis(); 1017 method public long getTxExternalPaDualChainActiveDurationMillis(); 1018 method public long getTxExternalPaSingleChainActiveDurationMillis(); 1019 method public long getTxInternalPaDualChainActiveDurationMillis(); 1020 method public long getTxInternalPaSingleChainActiveDurationMillis(); 1021 method public void writeToParcel(@NonNull android.os.Parcel, int); 1022 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothQualityReport.BqrEnergyMonitor> CREATOR; 1023 } 1024 1025 public static final class BluetoothQualityReport.BqrRfStats implements android.os.Parcelable { 1026 method public int describeContents(); 1027 method public int getExtensionInfo(); 1028 method public long getPacketsWithRssi50To55dBm(); 1029 method public long getPacketsWithRssi55To60dBm(); 1030 method public long getPacketsWithRssi60To65dBm(); 1031 method public long getPacketsWithRssi65To70dBm(); 1032 method public long getPacketsWithRssi70To75dBm(); 1033 method public long getPacketsWithRssi75To80dBm(); 1034 method public long getPacketsWithRssi80To85dBm(); 1035 method public long getPacketsWithRssi85To90dBm(); 1036 method public long getPacketsWithRssiAboveMinus50dBm(); 1037 method public long getPacketsWithRssiBelowMinus90dBm(); 1038 method public long getPacketsWithRssiDelta2To5dBm(); 1039 method public long getPacketsWithRssiDelta5To8dBm(); 1040 method public long getPacketsWithRssiDelta8To11dBm(); 1041 method public long getPacketsWithRssiDeltaAbove11dBm(); 1042 method public long getPacketsWithRssiDeltaBelow2dBm(); 1043 method public long getPerformanceDurationMillis(); 1044 method public long getTxPowerExternalPaBeamformingCount(); 1045 method public long getTxPowerExternalPaDiversityCount(); 1046 method public long getTxPowerInternalPaBeamformingCount(); 1047 method public long getTxPowerInternalPaDiversityCount(); 1048 method public void writeToParcel(@NonNull android.os.Parcel, int); 1049 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothQualityReport.BqrRfStats> CREATOR; 1050 } 1051 1052 public static final class BluetoothQualityReport.BqrVsA2dpChoppy implements android.os.Parcelable { 1053 method public int describeContents(); 1054 method public int getAclTxQueueLength(); 1055 method public long getArrivalTime(); 1056 method public int getGlitchCount(); 1057 method public int getLinkQuality(); 1058 method public int getRxCxmDenials(); 1059 method public long getScheduleTime(); 1060 method public int getTxCxmDenials(); 1061 method @Nullable public static String linkQualityToString(int); 1062 method public void writeToParcel(@NonNull android.os.Parcel, int); 1063 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothQualityReport.BqrVsA2dpChoppy> CREATOR; 1064 } 1065 1066 public static final class BluetoothQualityReport.BqrVsLsto implements android.os.Parcelable { 1067 method @Nullable public static String connStateToString(int); 1068 method public int describeContents(); 1069 method public long getBasebandStats(); 1070 method public int getConnState(); 1071 method public int getCxmDenials(); 1072 method public long getLastTxAckTimestamp(); 1073 method public long getNativeClock(); 1074 method public int getRfLoss(); 1075 method public long getSlotsUsed(); 1076 method public int getTxSkipped(); 1077 method public void writeToParcel(@NonNull android.os.Parcel, int); 1078 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothQualityReport.BqrVsLsto> CREATOR; 1079 } 1080 1081 public static final class BluetoothQualityReport.BqrVsScoChoppy implements android.os.Parcelable { 1082 method @Nullable public static String airFormatToString(int); 1083 method public int describeContents(); 1084 method public int getAirFormat(); 1085 method public int getGlitchCount(); 1086 method public int getGoodRxFrameCount(); 1087 method public int getInstanceCount(); 1088 method public int getIntervalEsco(); 1089 method public int getLateDispatch(); 1090 method public int getLpaIntrMiss(); 1091 method public int getMicIntrMiss(); 1092 method public int getMissedInstanceCount(); 1093 method public int getPlcDiscardCount(); 1094 method public int getPlcFillCount(); 1095 method public int getRxCxmDenials(); 1096 method public int getRxRetransmitSlotCount(); 1097 method public int getSprIntrMiss(); 1098 method public int getTxAbortCount(); 1099 method public int getTxCxmDenials(); 1100 method public int getTxRetransmitSlotCount(); 1101 method public int getWindowEsco(); 1102 method public void writeToParcel(@NonNull android.os.Parcel, int); 1103 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothQualityReport.BqrVsScoChoppy> CREATOR; 1104 } 1105 1106 public static final class BluetoothQualityReport.Builder { 1107 ctor public BluetoothQualityReport.Builder(@NonNull byte[]); 1108 method @NonNull public android.bluetooth.BluetoothQualityReport build(); 1109 method @NonNull public android.bluetooth.BluetoothQualityReport.Builder setBluetoothClass(@Nullable android.bluetooth.BluetoothClass); 1110 method @NonNull public android.bluetooth.BluetoothQualityReport.Builder setLmpSubVersion(int); 1111 method @NonNull public android.bluetooth.BluetoothQualityReport.Builder setLmpVersion(int); 1112 method @NonNull public android.bluetooth.BluetoothQualityReport.Builder setManufacturerId(int); 1113 method @NonNull public android.bluetooth.BluetoothQualityReport.Builder setRemoteAddress(@Nullable String); 1114 method @NonNull public android.bluetooth.BluetoothQualityReport.Builder setRemoteName(@Nullable String); 1115 } 1116 1117 public final class BluetoothSap implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 1118 method public void close(); 1119 method protected void finalize(); 1120 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 1121 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 1122 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice); 1123 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]); 1124 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 1125 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.sap.profile.action.CONNECTION_STATE_CHANGED"; 1126 } 1127 1128 public final class BluetoothSinkAudioPolicy implements android.os.Parcelable { 1129 method public int describeContents(); 1130 method public int getActiveDevicePolicyAfterConnection(); 1131 method public int getCallEstablishPolicy(); 1132 method public int getInBandRingtonePolicy(); 1133 method public void writeToParcel(@NonNull android.os.Parcel, int); 1134 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothSinkAudioPolicy> CREATOR; 1135 field public static final int POLICY_ALLOWED = 1; // 0x1 1136 field public static final int POLICY_NOT_ALLOWED = 2; // 0x2 1137 field public static final int POLICY_UNCONFIGURED = 0; // 0x0 1138 } 1139 1140 public static final class BluetoothSinkAudioPolicy.Builder { 1141 ctor public BluetoothSinkAudioPolicy.Builder(); 1142 ctor public BluetoothSinkAudioPolicy.Builder(@NonNull android.bluetooth.BluetoothSinkAudioPolicy); 1143 method @NonNull public android.bluetooth.BluetoothSinkAudioPolicy build(); 1144 method @NonNull public android.bluetooth.BluetoothSinkAudioPolicy.Builder setActiveDevicePolicyAfterConnection(int); 1145 method @NonNull public android.bluetooth.BluetoothSinkAudioPolicy.Builder setCallEstablishPolicy(int); 1146 method @NonNull public android.bluetooth.BluetoothSinkAudioPolicy.Builder setInBandRingtonePolicy(int); 1147 } 1148 1149 public final class BluetoothSocket implements java.io.Closeable { 1150 method public long getSocketId() throws java.io.IOException; 1151 } 1152 1153 public final class BluetoothSocketSettings { 1154 method public int getDataPath(); 1155 method public long getEndpointId(); 1156 method public long getHubId(); 1157 method public int getRequestedMaximumPacketSize(); 1158 method @NonNull public String getSocketName(); 1159 field public static final int DATA_PATH_HARDWARE_OFFLOAD = 1; // 0x1 1160 field public static final int DATA_PATH_NO_OFFLOAD = 0; // 0x0 1161 } 1162 1163 public static final class BluetoothSocketSettings.Builder { 1164 method @NonNull public android.bluetooth.BluetoothSocketSettings.Builder setDataPath(int); 1165 method @NonNull public android.bluetooth.BluetoothSocketSettings.Builder setEndpointId(long); 1166 method @NonNull public android.bluetooth.BluetoothSocketSettings.Builder setHubId(long); 1167 method @NonNull public android.bluetooth.BluetoothSocketSettings.Builder setRequestedMaximumPacketSize(int); 1168 method @NonNull public android.bluetooth.BluetoothSocketSettings.Builder setSocketName(@NonNull String); 1169 } 1170 1171 public final class BluetoothStatusCodes { 1172 field public static final int ALLOWED = 400; // 0x190 1173 field public static final int ERROR_ALREADY_IN_TARGET_STATE = 26; // 0x1a 1174 field public static final int ERROR_ANOTHER_ACTIVE_OOB_REQUEST = 1000; // 0x3e8 1175 field public static final int ERROR_ANOTHER_ACTIVE_REQUEST = 29; // 0x1d 1176 field public static final int ERROR_AUDIO_DEVICE_ALREADY_CONNECTED = 1116; // 0x45c 1177 field public static final int ERROR_AUDIO_DEVICE_ALREADY_DISCONNECTED = 1117; // 0x45d 1178 field public static final int ERROR_AUDIO_ROUTE_BLOCKED = 1118; // 0x45e 1179 field public static final int ERROR_BAD_PARAMETERS = 21; // 0x15 1180 field public static final int ERROR_CALLBACK_NOT_REGISTERED = 28; // 0x1c 1181 field public static final int ERROR_CALL_ACTIVE = 1119; // 0x45f 1182 field public static final int ERROR_CSIP_GROUP_LOCKED_BY_OTHER = 1208; // 0x4b8 1183 field public static final int ERROR_CSIP_INVALID_GROUP_ID = 1207; // 0x4b7 1184 field public static final int ERROR_CSIP_LOCKED_GROUP_MEMBER_LOST = 1209; // 0x4b9 1185 field public static final int ERROR_DISTANCE_MEASUREMENT_INTERNAL = 1301; // 0x515 1186 field public static final int ERROR_HAP_INVALID_PRESET_INDEX = 1211; // 0x4bb 1187 field public static final int ERROR_HAP_PRESET_NAME_TOO_LONG = 1210; // 0x4ba 1188 field public static final int ERROR_HARDWARE_GENERIC = 20; // 0x14 1189 field public static final int ERROR_LE_BROADCAST_ASSISTANT_DUPLICATE_ADDITION = 1203; // 0x4b3 1190 field public static final int ERROR_LE_BROADCAST_ASSISTANT_INVALID_SOURCE_ID = 1202; // 0x4b2 1191 field public static final int ERROR_LE_BROADCAST_INVALID_BROADCAST_ID = 1200; // 0x4b0 1192 field public static final int ERROR_LE_BROADCAST_INVALID_CODE = 1201; // 0x4b1 1193 field public static final int ERROR_LE_CONTENT_METADATA_INVALID_LANGUAGE = 1205; // 0x4b5 1194 field public static final int ERROR_LE_CONTENT_METADATA_INVALID_OTHER = 1206; // 0x4b6 1195 field public static final int ERROR_LE_CONTENT_METADATA_INVALID_PROGRAM_INFO = 1204; // 0x4b4 1196 field public static final int ERROR_LOCAL_NOT_ENOUGH_RESOURCES = 22; // 0x16 1197 field public static final int ERROR_NOT_ACTIVE_DEVICE = 12; // 0xc 1198 field public static final int ERROR_NOT_DUAL_MODE_AUDIO_DEVICE = 3000; // 0xbb8 1199 field public static final int ERROR_NO_ACTIVE_DEVICES = 13; // 0xd 1200 field public static final int ERROR_NO_LE_CONNECTION = 1300; // 0x514 1201 field public static final int ERROR_PROFILE_NOT_CONNECTED = 14; // 0xe 1202 field public static final int ERROR_REMOTE_LINK_ERROR = 25; // 0x19 1203 field public static final int ERROR_REMOTE_NOT_ENOUGH_RESOURCES = 23; // 0x17 1204 field public static final int ERROR_REMOTE_OPERATION_NOT_SUPPORTED = 27; // 0x1b 1205 field public static final int ERROR_REMOTE_OPERATION_REJECTED = 24; // 0x18 1206 field public static final int ERROR_TIMEOUT = 15; // 0xf 1207 field public static final int NOT_ALLOWED = 401; // 0x191 1208 field public static final int REASON_LOCAL_APP_REQUEST = 16; // 0x10 1209 field public static final int REASON_LOCAL_STACK_REQUEST = 17; // 0x11 1210 field public static final int REASON_REMOTE_REQUEST = 18; // 0x12 1211 field public static final int REASON_SYSTEM_POLICY = 19; // 0x13 1212 field public static final int RFCOMM_LISTENER_FAILED_TO_CLOSE_SERVER_SOCKET = 2004; // 0x7d4 1213 field public static final int RFCOMM_LISTENER_FAILED_TO_CREATE_SERVER_SOCKET = 2003; // 0x7d3 1214 field public static final int RFCOMM_LISTENER_NO_SOCKET_AVAILABLE = 2005; // 0x7d5 1215 field public static final int RFCOMM_LISTENER_OPERATION_FAILED_DIFFERENT_APP = 2002; // 0x7d2 1216 field public static final int RFCOMM_LISTENER_OPERATION_FAILED_NO_MATCHING_SERVICE_RECORD = 2001; // 0x7d1 1217 field public static final int RFCOMM_LISTENER_START_FAILED_UUID_IN_USE = 2000; // 0x7d0 1218 } 1219 1220 public final class BluetoothUuid { 1221 method public static boolean containsAnyUuid(@Nullable android.os.ParcelUuid[], @Nullable android.os.ParcelUuid[]); 1222 method @NonNull public static android.os.ParcelUuid parseUuidFrom(@Nullable byte[]); 1223 field @NonNull public static final android.os.ParcelUuid A2DP_SINK; 1224 field @NonNull public static final android.os.ParcelUuid A2DP_SOURCE; 1225 field @NonNull public static final android.os.ParcelUuid ADV_AUDIO_DIST; 1226 field @NonNull public static final android.os.ParcelUuid AVRCP; 1227 field @NonNull public static final android.os.ParcelUuid AVRCP_CONTROLLER; 1228 field @NonNull public static final android.os.ParcelUuid AVRCP_TARGET; 1229 field @NonNull public static final android.os.ParcelUuid BASE_UUID; 1230 field @NonNull public static final android.os.ParcelUuid BASS; 1231 field @NonNull public static final android.os.ParcelUuid BNEP; 1232 field @NonNull public static final android.os.ParcelUuid CAP; 1233 field @NonNull public static final android.os.ParcelUuid COORDINATED_SET; 1234 field @NonNull public static final android.os.ParcelUuid DIP; 1235 field @NonNull public static final android.os.ParcelUuid GENERIC_MEDIA_CONTROL; 1236 field @NonNull public static final android.os.ParcelUuid HAS; 1237 field @NonNull public static final android.os.ParcelUuid HEARING_AID; 1238 field @NonNull public static final android.os.ParcelUuid HFP; 1239 field @NonNull public static final android.os.ParcelUuid HFP_AG; 1240 field @NonNull public static final android.os.ParcelUuid HID; 1241 field @NonNull public static final android.os.ParcelUuid HOGP; 1242 field @NonNull public static final android.os.ParcelUuid HSP; 1243 field @NonNull public static final android.os.ParcelUuid HSP_AG; 1244 field @NonNull public static final android.os.ParcelUuid LE_AUDIO; 1245 field @NonNull public static final android.os.ParcelUuid MAP; 1246 field @NonNull public static final android.os.ParcelUuid MAS; 1247 field @NonNull public static final android.os.ParcelUuid MEDIA_CONTROL; 1248 field @NonNull public static final android.os.ParcelUuid MFI_HAS; 1249 field @NonNull public static final android.os.ParcelUuid MNS; 1250 field @NonNull public static final android.os.ParcelUuid NAP; 1251 field @NonNull public static final android.os.ParcelUuid OBEX_OBJECT_PUSH; 1252 field @NonNull public static final android.os.ParcelUuid PANU; 1253 field @NonNull public static final android.os.ParcelUuid PBAP_PCE; 1254 field @NonNull public static final android.os.ParcelUuid PBAP_PSE; 1255 field @NonNull public static final android.os.ParcelUuid SAP; 1256 field public static final int UUID_BYTES_128_BIT = 16; // 0x10 1257 field public static final int UUID_BYTES_16_BIT = 2; // 0x2 1258 field public static final int UUID_BYTES_32_BIT = 4; // 0x4 1259 field @NonNull public static final android.os.ParcelUuid VOLUME_CONTROL; 1260 } 1261 1262 public final class BluetoothVolumeControl implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile { 1263 method public void close(); 1264 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) protected void finalize(); 1265 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.AudioInputControl> getAudioInputControlServices(@NonNull android.bluetooth.BluetoothDevice); 1266 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(); 1267 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); 1268 method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice); 1269 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]); 1270 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getNumberOfVolumeOffsetInstances(@NonNull android.bluetooth.BluetoothDevice); 1271 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isVolumeOffsetAvailable(@NonNull android.bluetooth.BluetoothDevice); 1272 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); 1273 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); 1274 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setDeviceVolume(@NonNull android.bluetooth.BluetoothDevice, @IntRange(from=0, to=255) int, boolean); 1275 method @Deprecated @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); 1276 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void setVolumeOffset(@NonNull android.bluetooth.BluetoothDevice, @IntRange(from=1, to=255) int, @IntRange(from=0xffffff01, to=255) int); 1277 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void unregisterCallback(@NonNull android.bluetooth.BluetoothVolumeControl.Callback); 1278 field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.volume-control.profile.action.CONNECTION_STATE_CHANGED"; 1279 } 1280 1281 public static interface BluetoothVolumeControl.Callback { 1282 method public default void onDeviceVolumeChanged(@NonNull android.bluetooth.BluetoothDevice, @IntRange(from=0, to=255) int); 1283 method public default void onVolumeOffsetAudioDescriptionChanged(@NonNull android.bluetooth.BluetoothDevice, @IntRange(from=1, to=255) int, @NonNull String); 1284 method public default void onVolumeOffsetAudioLocationChanged(@NonNull android.bluetooth.BluetoothDevice, @IntRange(from=1, to=255) int, @IntRange(from=0xffffff01, to=255) int); 1285 method @Deprecated public default void onVolumeOffsetChanged(@NonNull android.bluetooth.BluetoothDevice, @IntRange(from=0xffffff01, to=255) int); 1286 method public default void onVolumeOffsetChanged(@NonNull android.bluetooth.BluetoothDevice, @IntRange(from=1, to=255) int, @IntRange(from=0xffffff01, to=255) int); 1287 } 1288 1289 public final class BufferConstraint implements android.os.Parcelable { 1290 ctor public BufferConstraint(int, int, int); 1291 method public int describeContents(); 1292 method public int getDefaultMillis(); 1293 method public int getMaxMillis(); 1294 method public int getMinMillis(); 1295 method public void writeToParcel(@NonNull android.os.Parcel, int); 1296 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BufferConstraint> CREATOR; 1297 } 1298 1299 public final class BufferConstraints implements android.os.Parcelable { 1300 ctor public BufferConstraints(@NonNull java.util.List<android.bluetooth.BufferConstraint>); 1301 method public int describeContents(); 1302 method @Nullable public android.bluetooth.BufferConstraint forCodec(int); 1303 method public void writeToParcel(@NonNull android.os.Parcel, int); 1304 field public static final int BUFFER_CODEC_MAX_NUM = 32; // 0x20 1305 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BufferConstraints> CREATOR; 1306 } 1307 1308 public final class OobData implements android.os.Parcelable { 1309 method public int describeContents(); 1310 method @NonNull public byte[] getClassOfDevice(); 1311 method @NonNull public byte[] getClassicLength(); 1312 method @NonNull public byte[] getConfirmationHash(); 1313 method @NonNull public byte[] getDeviceAddressWithType(); 1314 method @Nullable public byte[] getDeviceName(); 1315 method @Nullable public byte[] getLeAppearance(); 1316 method public int getLeDeviceRole(); 1317 method public int getLeFlags(); 1318 method @Nullable public byte[] getLeTemporaryKey(); 1319 method @NonNull public byte[] getRandomizerHash(); 1320 method public void writeToParcel(@NonNull android.os.Parcel, int); 1321 field public static final int CLASS_OF_DEVICE_OCTETS = 3; // 0x3 1322 field public static final int CONFIRMATION_OCTETS = 16; // 0x10 1323 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.OobData> CREATOR; 1324 field public static final int DEVICE_ADDRESS_OCTETS = 7; // 0x7 1325 field public static final int LE_APPEARANCE_OCTETS = 2; // 0x2 1326 field public static final int LE_DEVICE_FLAG_OCTETS = 1; // 0x1 1327 field public static final int LE_DEVICE_ROLE_BOTH_PREFER_CENTRAL = 3; // 0x3 1328 field public static final int LE_DEVICE_ROLE_BOTH_PREFER_PERIPHERAL = 2; // 0x2 1329 field public static final int LE_DEVICE_ROLE_CENTRAL_ONLY = 1; // 0x1 1330 field public static final int LE_DEVICE_ROLE_OCTETS = 1; // 0x1 1331 field public static final int LE_DEVICE_ROLE_PERIPHERAL_ONLY = 0; // 0x0 1332 field public static final int LE_FLAG_BREDR_NOT_SUPPORTED = 2; // 0x2 1333 field public static final int LE_FLAG_GENERAL_DISCOVERY_MODE = 1; // 0x1 1334 field public static final int LE_FLAG_LIMITED_DISCOVERY_MODE = 0; // 0x0 1335 field public static final int LE_FLAG_SIMULTANEOUS_CONTROLLER = 3; // 0x3 1336 field public static final int LE_FLAG_SIMULTANEOUS_HOST = 4; // 0x4 1337 field public static final int LE_TK_OCTETS = 16; // 0x10 1338 field public static final int OOB_LENGTH_OCTETS = 2; // 0x2 1339 field public static final int RANDOMIZER_OCTETS = 16; // 0x10 1340 } 1341 1342 public static final class OobData.ClassicBuilder { 1343 ctor public OobData.ClassicBuilder(@NonNull byte[], @NonNull byte[], @NonNull byte[]); 1344 method @NonNull public android.bluetooth.OobData build(); 1345 method @NonNull public android.bluetooth.OobData.ClassicBuilder setClassOfDevice(@NonNull byte[]); 1346 method @NonNull public android.bluetooth.OobData.ClassicBuilder setDeviceName(@NonNull byte[]); 1347 method @NonNull public android.bluetooth.OobData.ClassicBuilder setRandomizerHash(@NonNull byte[]); 1348 } 1349 1350 public static final class OobData.LeBuilder { 1351 ctor public OobData.LeBuilder(@NonNull byte[], @NonNull byte[], int); 1352 method @NonNull public android.bluetooth.OobData build(); 1353 method @NonNull public android.bluetooth.OobData.LeBuilder setDeviceName(@NonNull byte[]); 1354 method @NonNull public android.bluetooth.OobData.LeBuilder setLeFlags(int); 1355 method @NonNull public android.bluetooth.OobData.LeBuilder setLeTemporaryKey(@NonNull byte[]); 1356 method @NonNull public android.bluetooth.OobData.LeBuilder setRandomizerHash(@NonNull byte[]); 1357 } 1358 1359 public final class UidTraffic implements java.lang.Cloneable android.os.Parcelable { 1360 method public android.bluetooth.UidTraffic clone(); 1361 method public int describeContents(); 1362 method public long getRxBytes(); 1363 method public long getTxBytes(); 1364 method public int getUid(); 1365 method public void writeToParcel(android.os.Parcel, int); 1366 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.UidTraffic> CREATOR; 1367 } 1368 1369} 1370 1371package android.bluetooth.le { 1372 1373 public final class AdvertiseSettings implements android.os.Parcelable { 1374 method public int getOwnAddressType(); 1375 } 1376 1377 public static final class AdvertiseSettings.Builder { 1378 method @NonNull public android.bluetooth.le.AdvertiseSettings.Builder setOwnAddressType(int); 1379 } 1380 1381 public final class AdvertisingSet { 1382 method public int getAdvertiserId(); 1383 } 1384 1385 public final class AdvertisingSetParameters implements android.os.Parcelable { 1386 method public int getOwnAddressType(); 1387 method @Nullable public String getPeerAddress(); 1388 method public int getPeerAddressType(); 1389 method public boolean isDirected(); 1390 method public boolean isHighDutyCycle(); 1391 field public static final int ADDRESS_TYPE_DEFAULT = -1; // 0xffffffff 1392 field public static final int ADDRESS_TYPE_PUBLIC = 0; // 0x0 1393 field public static final int ADDRESS_TYPE_RANDOM = 1; // 0x1 1394 field public static final int ADDRESS_TYPE_RANDOM_NON_RESOLVABLE = 2; // 0x2 1395 } 1396 1397 public static final class AdvertisingSetParameters.Builder { 1398 method @NonNull public android.bluetooth.le.AdvertisingSetParameters.Builder setDirected(boolean); 1399 method @NonNull public android.bluetooth.le.AdvertisingSetParameters.Builder setHighDutyCycle(boolean); 1400 method @NonNull public android.bluetooth.le.AdvertisingSetParameters.Builder setOwnAddressType(int); 1401 method @NonNull public android.bluetooth.le.AdvertisingSetParameters.Builder setPeerAddress(@NonNull String); 1402 method @NonNull public android.bluetooth.le.AdvertisingSetParameters.Builder setPeerAddressType(int); 1403 } 1404 1405 public final class BluetoothLeAdvertiser { 1406 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public void startAdvertisingSet(@NonNull android.bluetooth.le.AdvertisingSetParameters, @Nullable android.bluetooth.le.AdvertiseData, @Nullable android.bluetooth.le.AdvertiseData, @Nullable android.bluetooth.le.PeriodicAdvertisingParameters, @Nullable android.bluetooth.le.AdvertiseData, int, int, @Nullable android.bluetooth.BluetoothGattServer, @Nullable android.bluetooth.le.AdvertisingSetCallback, @NonNull android.os.Handler); 1407 } 1408 1409 public final class BluetoothLeScanner { 1410 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.UPDATE_DEVICE_STATS}) public void startScanFromSource(android.os.WorkSource, android.bluetooth.le.ScanCallback); 1411 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); 1412 } 1413 1414 public final class ChannelSoundingParams implements android.os.Parcelable { 1415 method public int describeContents(); 1416 method public int getCsSecurityLevel(); 1417 method public int getLocationType(); 1418 method public int getSightType(); 1419 method public void writeToParcel(@NonNull android.os.Parcel, int); 1420 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ChannelSoundingParams> CREATOR; 1421 field public static final int CS_SECURITY_LEVEL_FOUR = 4; // 0x4 1422 field public static final int CS_SECURITY_LEVEL_ONE = 1; // 0x1 1423 field public static final int CS_SECURITY_LEVEL_THREE = 3; // 0x3 1424 field public static final int CS_SECURITY_LEVEL_TWO = 2; // 0x2 1425 field public static final int CS_SECURITY_LEVEL_UNKNOWN = 0; // 0x0 1426 field public static final int LOCATION_TYPE_INDOOR = 1; // 0x1 1427 field public static final int LOCATION_TYPE_OUTDOOR = 2; // 0x2 1428 field public static final int LOCATION_TYPE_UNKNOWN = 0; // 0x0 1429 field public static final int SIGHT_TYPE_LINE_OF_SIGHT = 1; // 0x1 1430 field public static final int SIGHT_TYPE_NON_LINE_OF_SIGHT = 2; // 0x2 1431 field public static final int SIGHT_TYPE_UNKNOWN = 0; // 0x0 1432 } 1433 1434 public static final class ChannelSoundingParams.Builder { 1435 ctor public ChannelSoundingParams.Builder(); 1436 method @NonNull public android.bluetooth.le.ChannelSoundingParams build(); 1437 method @NonNull public android.bluetooth.le.ChannelSoundingParams.Builder setCsSecurityLevel(int); 1438 method @NonNull public android.bluetooth.le.ChannelSoundingParams.Builder setLocationType(int); 1439 method @NonNull public android.bluetooth.le.ChannelSoundingParams.Builder setSightType(int); 1440 } 1441 1442 public final class DistanceMeasurementManager { 1443 method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getChannelSoundingMaxSupportedSecurityLevel(@NonNull android.bluetooth.BluetoothDevice); 1444 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.Set<java.lang.Integer> getChannelSoundingSupportedSecurityLevels(); 1445 method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getLocalChannelSoundingMaxSupportedSecurityLevel(); 1446 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.le.DistanceMeasurementMethod> getSupportedMethods(); 1447 method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.os.CancellationSignal startMeasurementSession(@NonNull android.bluetooth.le.DistanceMeasurementParams, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.le.DistanceMeasurementSession.Callback); 1448 } 1449 1450 public final class DistanceMeasurementMethod implements android.os.Parcelable { 1451 method public int describeContents(); 1452 method @Deprecated public double getId(); 1453 method public int getMethodId(); 1454 method public boolean isAltitudeAngleSupported(); 1455 method public boolean isAzimuthAngleSupported(); 1456 method public void writeToParcel(android.os.Parcel, int); 1457 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.DistanceMeasurementMethod> CREATOR; 1458 field public static final int DISTANCE_MEASUREMENT_METHOD_AUTO = 0; // 0x0 1459 field public static final int DISTANCE_MEASUREMENT_METHOD_CHANNEL_SOUNDING = 2; // 0x2 1460 field public static final int DISTANCE_MEASUREMENT_METHOD_RSSI = 1; // 0x1 1461 } 1462 1463 public static final class DistanceMeasurementMethod.Builder { 1464 ctor public DistanceMeasurementMethod.Builder(int); 1465 method @NonNull public android.bluetooth.le.DistanceMeasurementMethod build(); 1466 method @NonNull public android.bluetooth.le.DistanceMeasurementMethod.Builder setAltitudeAngleSupported(boolean); 1467 method @NonNull public android.bluetooth.le.DistanceMeasurementMethod.Builder setAzimuthAngleSupported(boolean); 1468 } 1469 1470 public final class DistanceMeasurementParams implements android.os.Parcelable { 1471 method public int describeContents(); 1472 method @Nullable public android.bluetooth.le.ChannelSoundingParams getChannelSoundingParams(); 1473 method public static int getDefaultDurationSeconds(); 1474 method @NonNull public android.bluetooth.BluetoothDevice getDevice(); 1475 method @IntRange(from=0) public int getDurationSeconds(); 1476 method public int getFrequency(); 1477 method public static int getMaxDurationSeconds(); 1478 method public int getMethodId(); 1479 method public void writeToParcel(android.os.Parcel, int); 1480 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.DistanceMeasurementParams> CREATOR; 1481 field public static final int REPORT_FREQUENCY_HIGH = 2; // 0x2 1482 field public static final int REPORT_FREQUENCY_LOW = 0; // 0x0 1483 field public static final int REPORT_FREQUENCY_MEDIUM = 1; // 0x1 1484 } 1485 1486 public static final class DistanceMeasurementParams.Builder { 1487 ctor public DistanceMeasurementParams.Builder(@NonNull android.bluetooth.BluetoothDevice); 1488 method @NonNull public android.bluetooth.le.DistanceMeasurementParams build(); 1489 method @NonNull public android.bluetooth.le.DistanceMeasurementParams.Builder setChannelSoundingParams(@NonNull android.bluetooth.le.ChannelSoundingParams); 1490 method @NonNull public android.bluetooth.le.DistanceMeasurementParams.Builder setDurationSeconds(@IntRange(from=0) int); 1491 method @NonNull public android.bluetooth.le.DistanceMeasurementParams.Builder setFrequency(int); 1492 method @NonNull public android.bluetooth.le.DistanceMeasurementParams.Builder setMethodId(int); 1493 } 1494 1495 public final class DistanceMeasurementResult implements android.os.Parcelable { 1496 method public int describeContents(); 1497 method @FloatRange(from=-90.0, to=90.0) public double getAltitudeAngle(); 1498 method @FloatRange(from=0.0, to=360.0) public double getAzimuthAngle(); 1499 method @FloatRange(from=0.0, to=1.0) public double getConfidenceLevel(); 1500 method public double getDelaySpreadMeters(); 1501 method public int getDetectedAttackLevel(); 1502 method public double getErrorAltitudeAngle(); 1503 method public double getErrorAzimuthAngle(); 1504 method @FloatRange(from=0.0) public double getErrorMeters(); 1505 method public long getMeasurementTimestampNanos(); 1506 method public double getResultMeters(); 1507 method public double getVelocityMetersPerSecond(); 1508 method public void writeToParcel(android.os.Parcel, int); 1509 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.DistanceMeasurementResult> CREATOR; 1510 field public static final int NADM_ATTACK_IS_EXTREMELY_LIKELY = 6; // 0x6 1511 field public static final int NADM_ATTACK_IS_EXTREMELY_UNLIKELY = 0; // 0x0 1512 field public static final int NADM_ATTACK_IS_LIKELY = 4; // 0x4 1513 field public static final int NADM_ATTACK_IS_POSSIBLE = 3; // 0x3 1514 field public static final int NADM_ATTACK_IS_UNLIKELY = 2; // 0x2 1515 field public static final int NADM_ATTACK_IS_VERY_LIKELY = 5; // 0x5 1516 field public static final int NADM_ATTACK_IS_VERY_UNLIKELY = 1; // 0x1 1517 field public static final int NADM_UNKNOWN = 255; // 0xff 1518 } 1519 1520 public static final class DistanceMeasurementResult.Builder { 1521 ctor public DistanceMeasurementResult.Builder(@FloatRange(from=0.0) double, @FloatRange(from=0.0) double); 1522 method @NonNull public android.bluetooth.le.DistanceMeasurementResult build(); 1523 method @NonNull public android.bluetooth.le.DistanceMeasurementResult.Builder setAltitudeAngle(@FloatRange(from=-90.0, to=90.0) double); 1524 method @NonNull public android.bluetooth.le.DistanceMeasurementResult.Builder setAzimuthAngle(@FloatRange(from=0.0, to=360.0) double); 1525 method @NonNull public android.bluetooth.le.DistanceMeasurementResult.Builder setConfidenceLevel(@FloatRange(from=0.0, to=1.0) double); 1526 method @NonNull public android.bluetooth.le.DistanceMeasurementResult.Builder setDelaySpreadMeters(double); 1527 method @NonNull public android.bluetooth.le.DistanceMeasurementResult.Builder setDetectedAttackLevel(int); 1528 method @NonNull public android.bluetooth.le.DistanceMeasurementResult.Builder setErrorAltitudeAngle(@FloatRange(from=0.0, to=180.0) double); 1529 method @NonNull public android.bluetooth.le.DistanceMeasurementResult.Builder setErrorAzimuthAngle(@FloatRange(from=0.0, to=360.0) double); 1530 method @NonNull public android.bluetooth.le.DistanceMeasurementResult.Builder setMeasurementTimestampNanos(long); 1531 method @NonNull public android.bluetooth.le.DistanceMeasurementResult.Builder setVelocityMetersPerSecond(double); 1532 } 1533 1534 public final class DistanceMeasurementSession { 1535 method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int stopSession(); 1536 } 1537 1538 public static interface DistanceMeasurementSession.Callback { 1539 method public void onResult(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.le.DistanceMeasurementResult); 1540 method public void onStartFail(int); 1541 method public void onStarted(@NonNull android.bluetooth.le.DistanceMeasurementSession); 1542 method public void onStopped(@NonNull android.bluetooth.le.DistanceMeasurementSession, int); 1543 } 1544 1545 @Deprecated public final class ResultStorageDescriptor implements android.os.Parcelable { 1546 ctor @Deprecated public ResultStorageDescriptor(int, int, int); 1547 method @Deprecated public int describeContents(); 1548 method @Deprecated public int getLength(); 1549 method @Deprecated public int getOffset(); 1550 method @Deprecated public int getType(); 1551 method @Deprecated public void writeToParcel(android.os.Parcel, int); 1552 field @Deprecated @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ResultStorageDescriptor> CREATOR; 1553 } 1554 1555 public final class ScanFilter implements android.os.Parcelable { 1556 method public int getAddressType(); 1557 method @Nullable public byte[] getIrk(); 1558 method @Nullable public android.bluetooth.le.TransportBlockFilter getTransportBlockFilter(); 1559 } 1560 1561 public static final class ScanFilter.Builder { 1562 method @NonNull public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(@NonNull String, int); 1563 method @NonNull public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(@NonNull String, int, @NonNull byte[]); 1564 method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.le.ScanFilter.Builder setTransportBlockFilter(@NonNull android.bluetooth.le.TransportBlockFilter); 1565 field public static final int LEN_IRK_OCTETS = 16; // 0x10 1566 } 1567 1568 public final class ScanRecord { 1569 method @Nullable public android.bluetooth.le.TransportDiscoveryData getTransportDiscoveryData(); 1570 } 1571 1572 public final class ScanSettings implements android.os.Parcelable { 1573 field public static final int SCAN_MODE_AMBIENT_DISCOVERY = 3; // 0x3 1574 field public static final int SCAN_RESULT_TYPE_ABBREVIATED = 1; // 0x1 1575 field public static final int SCAN_RESULT_TYPE_FULL = 0; // 0x0 1576 } 1577 1578 public static final class ScanSettings.Builder { 1579 method public android.bluetooth.le.ScanSettings.Builder setScanResultType(int); 1580 } 1581 1582 public final class TransportBlockFilter implements android.os.Parcelable { 1583 method public int describeContents(); 1584 method public int getOrgId(); 1585 method public int getTdsFlags(); 1586 method public int getTdsFlagsMask(); 1587 method @Nullable public byte[] getTransportData(); 1588 method @Nullable public byte[] getTransportDataMask(); 1589 method @Nullable public byte[] getWifiNanHash(); 1590 method public void writeToParcel(@NonNull android.os.Parcel, int); 1591 field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.TransportBlockFilter> CREATOR; 1592 field public static final int WIFI_NAN_HASH_LENGTH_BYTES = 8; // 0x8 1593 } 1594 1595 public static final class TransportBlockFilter.Builder { 1596 ctor public TransportBlockFilter.Builder(int); 1597 method @NonNull public android.bluetooth.le.TransportBlockFilter build(); 1598 method @NonNull public android.bluetooth.le.TransportBlockFilter.Builder setTdsFlags(int, int); 1599 method @NonNull public android.bluetooth.le.TransportBlockFilter.Builder setTransportData(@NonNull byte[], @NonNull byte[]); 1600 method @NonNull public android.bluetooth.le.TransportBlockFilter.Builder setWifiNanHash(@NonNull byte[]); 1601 } 1602 1603 @Deprecated public final class TruncatedFilter { 1604 ctor @Deprecated public TruncatedFilter(android.bluetooth.le.ScanFilter, java.util.List<android.bluetooth.le.ResultStorageDescriptor>); 1605 method @Deprecated public android.bluetooth.le.ScanFilter getFilter(); 1606 method @Deprecated public java.util.List<android.bluetooth.le.ResultStorageDescriptor> getStorageDescriptors(); 1607 } 1608 1609} 1610 1611