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