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