1// Signature format: 2.0
2package android.bluetooth {
3
4  public final class BluetoothA2dp implements android.bluetooth.BluetoothProfile {
5    method public void finalize();
6    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
7    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice);
8    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
9    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.Collection<android.bluetooth.BluetoothCodecType> getSupportedCodecTypes();
10    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isA2dpPlaying(android.bluetooth.BluetoothDevice);
11    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp.profile.action.CONNECTION_STATE_CHANGED";
12    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_PLAYING_STATE_CHANGED = "android.bluetooth.a2dp.profile.action.PLAYING_STATE_CHANGED";
13    field public static final int STATE_NOT_PLAYING = 11; // 0xb
14    field public static final int STATE_PLAYING = 10; // 0xa
15  }
16
17  public final class BluetoothAdapter {
18    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public boolean cancelDiscovery();
19    method public static boolean checkBluetoothAddress(String);
20    method public void closeProfileProxy(int, android.bluetooth.BluetoothProfile);
21    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disable();
22    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean enable();
23    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.LOCAL_MAC_ADDRESS}) public String getAddress();
24    method public android.bluetooth.le.BluetoothLeAdvertiser getBluetoothLeAdvertiser();
25    method public android.bluetooth.le.BluetoothLeScanner getBluetoothLeScanner();
26    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.Set<android.bluetooth.BluetoothDevice> getBondedDevices();
27    method @Deprecated public static android.bluetooth.BluetoothAdapter getDefaultAdapter();
28    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public java.time.Duration getDiscoverableTimeout();
29    method public int getLeMaximumAdvertisingDataLength();
30    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getMaxConnectedAudioDevices();
31    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public String getName();
32    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getProfileConnectionState(int);
33    method public boolean getProfileProxy(android.content.Context, android.bluetooth.BluetoothProfile.ServiceListener, int);
34    method public android.bluetooth.BluetoothDevice getRemoteDevice(String);
35    method public android.bluetooth.BluetoothDevice getRemoteDevice(byte[]);
36    method @NonNull public android.bluetooth.BluetoothDevice getRemoteLeDevice(@NonNull String, int);
37    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public int getScanMode();
38    method public int getState();
39    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public boolean isDiscovering();
40    method public boolean isEnabled();
41    method public boolean isLe2MPhySupported();
42    method public int isLeAudioBroadcastAssistantSupported();
43    method public int isLeAudioBroadcastSourceSupported();
44    method public int isLeAudioSupported();
45    method public boolean isLeCodedPhySupported();
46    method public boolean isLeExtendedAdvertisingSupported();
47    method public boolean isLePeriodicAdvertisingSupported();
48    method public boolean isMultipleAdvertisementSupported();
49    method public boolean isOffloadedFilteringSupported();
50    method public boolean isOffloadedScanBatchingSupported();
51    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothServerSocket listenUsingInsecureL2capChannel() throws java.io.IOException;
52    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothServerSocket listenUsingInsecureRfcommWithServiceRecord(String, java.util.UUID) throws java.io.IOException;
53    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothServerSocket listenUsingL2capChannel() throws java.io.IOException;
54    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothServerSocket listenUsingRfcommWithServiceRecord(String, java.util.UUID) throws java.io.IOException;
55    method @FlaggedApi("com.android.bluetooth.flags.socket_settings_api") @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public android.bluetooth.BluetoothServerSocket listenUsingSocketSettings(@NonNull android.bluetooth.BluetoothSocketSettings) throws java.io.IOException;
56    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean setName(String);
57    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public boolean startDiscovery();
58    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public boolean startLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback);
59    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public boolean startLeScan(java.util.UUID[], android.bluetooth.BluetoothAdapter.LeScanCallback);
60    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void stopLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback);
61    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED";
62    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public static final String ACTION_DISCOVERY_FINISHED = "android.bluetooth.adapter.action.DISCOVERY_FINISHED";
63    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public static final String ACTION_DISCOVERY_STARTED = "android.bluetooth.adapter.action.DISCOVERY_STARTED";
64    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_LOCAL_NAME_CHANGED = "android.bluetooth.adapter.action.LOCAL_NAME_CHANGED";
65    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public static final String ACTION_REQUEST_DISCOVERABLE = "android.bluetooth.adapter.action.REQUEST_DISCOVERABLE";
66    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_REQUEST_ENABLE = "android.bluetooth.adapter.action.REQUEST_ENABLE";
67    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public static final String ACTION_SCAN_MODE_CHANGED = "android.bluetooth.adapter.action.SCAN_MODE_CHANGED";
68    field public static final String ACTION_STATE_CHANGED = "android.bluetooth.adapter.action.STATE_CHANGED";
69    field public static final int ERROR = -2147483648; // 0x80000000
70    field public static final String EXTRA_CONNECTION_STATE = "android.bluetooth.adapter.extra.CONNECTION_STATE";
71    field public static final String EXTRA_DISCOVERABLE_DURATION = "android.bluetooth.adapter.extra.DISCOVERABLE_DURATION";
72    field public static final String EXTRA_LOCAL_NAME = "android.bluetooth.adapter.extra.LOCAL_NAME";
73    field public static final String EXTRA_PREVIOUS_CONNECTION_STATE = "android.bluetooth.adapter.extra.PREVIOUS_CONNECTION_STATE";
74    field public static final String EXTRA_PREVIOUS_SCAN_MODE = "android.bluetooth.adapter.extra.PREVIOUS_SCAN_MODE";
75    field public static final String EXTRA_PREVIOUS_STATE = "android.bluetooth.adapter.extra.PREVIOUS_STATE";
76    field public static final String EXTRA_SCAN_MODE = "android.bluetooth.adapter.extra.SCAN_MODE";
77    field public static final String EXTRA_STATE = "android.bluetooth.adapter.extra.STATE";
78    field public static final int SCAN_MODE_CONNECTABLE = 21; // 0x15
79    field public static final int SCAN_MODE_CONNECTABLE_DISCOVERABLE = 23; // 0x17
80    field public static final int SCAN_MODE_NONE = 20; // 0x14
81    field public static final int STATE_CONNECTED = 2; // 0x2
82    field public static final int STATE_CONNECTING = 1; // 0x1
83    field public static final int STATE_DISCONNECTED = 0; // 0x0
84    field public static final int STATE_DISCONNECTING = 3; // 0x3
85    field public static final int STATE_OFF = 10; // 0xa
86    field public static final int STATE_ON = 12; // 0xc
87    field public static final int STATE_TURNING_OFF = 13; // 0xd
88    field public static final int STATE_TURNING_ON = 11; // 0xb
89  }
90
91  public static interface BluetoothAdapter.LeScanCallback {
92    method public void onLeScan(android.bluetooth.BluetoothDevice, int, byte[]);
93  }
94
95  public class BluetoothAssignedNumbers {
96    field public static final int AAMP_OF_AMERICA = 190; // 0xbe
97    field public static final int ACCEL_SEMICONDUCTOR = 74; // 0x4a
98    field public static final int ACE_SENSOR = 188; // 0xbc
99    field public static final int ADIDAS = 195; // 0xc3
100    field public static final int ADVANCED_PANMOBIL_SYSTEMS = 145; // 0x91
101    field public static final int AIROHA_TECHNOLOGY = 148; // 0x94
102    field public static final int ALCATEL = 36; // 0x24
103    field public static final int ALPWISE = 154; // 0x9a
104    field public static final int AMICCOM_ELECTRONICS = 192; // 0xc0
105    field public static final int APLIX = 189; // 0xbd
106    field public static final int APPLE = 76; // 0x4c
107    field public static final int APT_LICENSING = 79; // 0x4f
108    field public static final int ARCHOS = 207; // 0xcf
109    field public static final int ARP_DEVICES = 168; // 0xa8
110    field public static final int ATHEROS_COMMUNICATIONS = 69; // 0x45
111    field public static final int ATMEL = 19; // 0x13
112    field public static final int AUSTCO_COMMUNICATION_SYSTEMS = 213; // 0xd5
113    field public static final int AUTONET_MOBILE = 127; // 0x7f
114    field public static final int AVAGO = 78; // 0x4e
115    field public static final int AVM_BERLIN = 31; // 0x1f
116    field public static final int A_AND_D_ENGINEERING = 105; // 0x69
117    field public static final int A_AND_R_CAMBRIDGE = 124; // 0x7c
118    field public static final int BANDSPEED = 32; // 0x20
119    field public static final int BAND_XI_INTERNATIONAL = 100; // 0x64
120    field public static final int BDE_TECHNOLOGY = 180; // 0xb4
121    field public static final int BEATS_ELECTRONICS = 204; // 0xcc
122    field public static final int BEAUTIFUL_ENTERPRISE = 108; // 0x6c
123    field public static final int BEKEY = 178; // 0xb2
124    field public static final int BELKIN_INTERNATIONAL = 92; // 0x5c
125    field public static final int BINAURIC = 203; // 0xcb
126    field public static final int BIOSENTRONICS = 219; // 0xdb
127    field public static final int BLUEGIGA = 71; // 0x47
128    field public static final int BLUERADIOS = 133; // 0x85
129    field public static final int BLUETOOTH_SIG = 63; // 0x3f
130    field public static final int BLUETREK_TECHNOLOGIES = 151; // 0x97
131    field public static final int BOSE = 158; // 0x9e
132    field public static final int BRIARTEK = 109; // 0x6d
133    field public static final int BROADCOM = 15; // 0xf
134    field public static final int CAEN_RFID = 170; // 0xaa
135    field public static final int CAMBRIDGE_SILICON_RADIO = 10; // 0xa
136    field public static final int CATC = 52; // 0x34
137    field public static final int CINETIX = 175; // 0xaf
138    field public static final int CLARINOX_TECHNOLOGIES = 179; // 0xb3
139    field public static final int COLORFY = 156; // 0x9c
140    field public static final int COMMIL = 51; // 0x33
141    field public static final int CONEXANT_SYSTEMS = 28; // 0x1c
142    field public static final int CONNECTBLUE = 113; // 0x71
143    field public static final int CONTINENTAL_AUTOMOTIVE = 75; // 0x4b
144    field public static final int CONWISE_TECHNOLOGY = 66; // 0x42
145    field public static final int CREATIVE_TECHNOLOGY = 118; // 0x76
146    field public static final int C_TECHNOLOGIES = 38; // 0x26
147    field public static final int DANLERS = 225; // 0xe1
148    field public static final int DELORME_PUBLISHING_COMPANY = 128; // 0x80
149    field public static final int DEXCOM = 208; // 0xd0
150    field public static final int DIALOG_SEMICONDUCTOR = 210; // 0xd2
151    field public static final int DIGIANSWER = 12; // 0xc
152    field public static final int ECLIPSE = 53; // 0x35
153    field public static final int ECOTEST = 136; // 0x88
154    field public static final int ELGATO_SYSTEMS = 206; // 0xce
155    field public static final int EM_MICROELECTRONIC_MARIN = 90; // 0x5a
156    field public static final int EQUINOX_AG = 134; // 0x86
157    field public static final int ERICSSON_TECHNOLOGY = 0; // 0x0
158    field public static final int EVLUMA = 201; // 0xc9
159    field public static final int FREE2MOVE = 83; // 0x53
160    field public static final int FUNAI_ELECTRIC = 144; // 0x90
161    field public static final int GARMIN_INTERNATIONAL = 135; // 0x87
162    field public static final int GCT_SEMICONDUCTOR = 45; // 0x2d
163    field public static final int GELO = 200; // 0xc8
164    field public static final int GENEQ = 194; // 0xc2
165    field public static final int GENERAL_MOTORS = 104; // 0x68
166    field public static final int GENNUM = 59; // 0x3b
167    field public static final int GEOFORCE = 157; // 0x9d
168    field public static final int GIBSON_GUITARS = 98; // 0x62
169    field public static final int GN_NETCOM = 103; // 0x67
170    field public static final int GN_RESOUND = 137; // 0x89
171    field public static final int GOOGLE = 224; // 0xe0
172    field public static final int GREEN_THROTTLE_GAMES = 172; // 0xac
173    field public static final int GROUP_SENSE = 115; // 0x73
174    field public static final int HANLYNN_TECHNOLOGIES = 123; // 0x7b
175    field public static final int HARMAN_INTERNATIONAL = 87; // 0x57
176    field public static final int HEWLETT_PACKARD = 101; // 0x65
177    field public static final int HITACHI = 41; // 0x29
178    field public static final int HOSIDEN = 221; // 0xdd
179    field public static final int IBM = 3; // 0x3
180    field public static final int INFINEON_TECHNOLOGIES = 9; // 0x9
181    field public static final int INGENIEUR_SYSTEMGRUPPE_ZAHN = 171; // 0xab
182    field public static final int INTEGRATED_SILICON_SOLUTION = 65; // 0x41
183    field public static final int INTEGRATED_SYSTEM_SOLUTION = 57; // 0x39
184    field public static final int INTEL = 2; // 0x2
185    field public static final int INVENTEL = 30; // 0x1e
186    field public static final int IPEXTREME = 61; // 0x3d
187    field public static final int I_TECH_DYNAMIC_GLOBAL_DISTRIBUTION = 153; // 0x99
188    field public static final int JAWBONE = 138; // 0x8a
189    field public static final int JIANGSU_TOPPOWER_AUTOMOTIVE_ELECTRONICS = 155; // 0x9b
190    field public static final int JOHNSON_CONTROLS = 185; // 0xb9
191    field public static final int J_AND_M = 82; // 0x52
192    field public static final int KAWANTECH = 212; // 0xd4
193    field public static final int KC_TECHNOLOGY = 22; // 0x16
194    field public static final int KENSINGTON_COMPUTER_PRODUCTS_GROUP = 160; // 0xa0
195    field public static final int LAIRD_TECHNOLOGIES = 119; // 0x77
196    field public static final int LESSWIRE = 121; // 0x79
197    field public static final int LG_ELECTRONICS = 196; // 0xc4
198    field public static final int LINAK = 164; // 0xa4
199    field public static final int LUCENT = 7; // 0x7
200    field public static final int LUDUS_HELSINKI = 132; // 0x84
201    field public static final int MACRONIX = 44; // 0x2c
202    field public static final int MAGNETI_MARELLI = 169; // 0xa9
203    field public static final int MANSELLA = 33; // 0x21
204    field public static final int MARVELL = 72; // 0x48
205    field public static final int MATSUSHITA_ELECTRIC = 58; // 0x3a
206    field public static final int MC10 = 202; // 0xca
207    field public static final int MEDIATEK = 70; // 0x46
208    field public static final int MESO_INTERNATIONAL = 182; // 0xb6
209    field public static final int META_WATCH = 163; // 0xa3
210    field public static final int MEWTEL_TECHNOLOGY = 47; // 0x2f
211    field public static final int MICOMMAND = 99; // 0x63
212    field public static final int MICROCHIP_TECHNOLOGY = 205; // 0xcd
213    field public static final int MICROSOFT = 6; // 0x6
214    field public static final int MINDTREE = 106; // 0x6a
215    field public static final int MISFIT_WEARABLES = 223; // 0xdf
216    field public static final int MITEL_SEMICONDUCTOR = 16; // 0x10
217    field public static final int MITSUBISHI_ELECTRIC = 20; // 0x14
218    field public static final int MOBILIAN_CORPORATION = 55; // 0x37
219    field public static final int MONSTER = 112; // 0x70
220    field public static final int MOTOROLA = 8; // 0x8
221    field public static final int MSTAR_SEMICONDUCTOR = 122; // 0x7a
222    field public static final int MUZIK = 222; // 0xde
223    field public static final int NEC = 34; // 0x22
224    field public static final int NEC_LIGHTING = 149; // 0x95
225    field public static final int NEWLOGIC = 23; // 0x17
226    field public static final int NIKE = 120; // 0x78
227    field public static final int NINE_SOLUTIONS = 102; // 0x66
228    field public static final int NOKIA_MOBILE_PHONES = 1; // 0x1
229    field public static final int NORDIC_SEMICONDUCTOR = 89; // 0x59
230    field public static final int NORWOOD_SYSTEMS = 46; // 0x2e
231    field public static final int ODM_TECHNOLOGY = 150; // 0x96
232    field public static final int OMEGAWAVE = 174; // 0xae
233    field public static final int ONSET_COMPUTER = 197; // 0xc5
234    field public static final int OPEN_INTERFACE = 39; // 0x27
235    field public static final int OTL_DYNAMICS = 165; // 0xa5
236    field public static final int PANDA_OCEAN = 166; // 0xa6
237    field public static final int PARROT = 67; // 0x43
238    field public static final int PARTHUS_TECHNOLOGIES = 14; // 0xe
239    field public static final int PASSIF_SEMICONDUCTOR = 176; // 0xb0
240    field public static final int PETER_SYSTEMTECHNIK = 173; // 0xad
241    field public static final int PHILIPS_SEMICONDUCTORS = 37; // 0x25
242    field public static final int PLANTRONICS = 85; // 0x55
243    field public static final int POLAR_ELECTRO = 107; // 0x6b
244    field public static final int POLAR_ELECTRO_EUROPE = 209; // 0xd1
245    field public static final int PROCTER_AND_GAMBLE = 220; // 0xdc
246    field public static final int QUALCOMM = 29; // 0x1d
247    field public static final int QUALCOMM_CONNECTED_EXPERIENCES = 216; // 0xd8
248    field public static final int QUALCOMM_INNOVATION_CENTER = 184; // 0xb8
249    field public static final int QUALCOMM_LABS = 140; // 0x8c
250    field public static final int QUALCOMM_TECHNOLOGIES = 215; // 0xd7
251    field public static final int QUINTIC = 142; // 0x8e
252    field public static final int QUUPPA = 199; // 0xc7
253    field public static final int RALINK_TECHNOLOGY = 91; // 0x5b
254    field public static final int RDA_MICROELECTRONICS = 97; // 0x61
255    field public static final int REALTEK_SEMICONDUCTOR = 93; // 0x5d
256    field public static final int RED_M = 50; // 0x32
257    field public static final int RENESAS_TECHNOLOGY = 54; // 0x36
258    field public static final int RESEARCH_IN_MOTION = 60; // 0x3c
259    field public static final int RF_MICRO_DEVICES = 40; // 0x28
260    field public static final int RIVIERAWAVES = 96; // 0x60
261    field public static final int ROHDE_AND_SCHWARZ = 25; // 0x19
262    field public static final int RTX_TELECOM = 21; // 0x15
263    field public static final int SAMSUNG_ELECTRONICS = 117; // 0x75
264    field public static final int SARIS_CYCLING_GROUP = 177; // 0xb1
265    field public static final int SEERS_TECHNOLOGY = 125; // 0x7d
266    field public static final int SEIKO_EPSON = 64; // 0x40
267    field public static final int SELFLY = 198; // 0xc6
268    field public static final int SEMILINK = 226; // 0xe2
269    field public static final int SENNHEISER_COMMUNICATIONS = 130; // 0x82
270    field public static final int SHANGHAI_SUPER_SMART_ELECTRONICS = 114; // 0x72
271    field public static final int SHENZHEN_EXCELSECU_DATA_TECHNOLOGY = 193; // 0xc1
272    field public static final int SIGNIA_TECHNOLOGIES = 27; // 0x1b
273    field public static final int SILICON_WAVE = 11; // 0xb
274    field public static final int SIRF_TECHNOLOGY = 80; // 0x50
275    field public static final int SOCKET_MOBILE = 68; // 0x44
276    field public static final int SONY_ERICSSON = 86; // 0x56
277    field public static final int SOUND_ID = 111; // 0x6f
278    field public static final int SPORTS_TRACKING_TECHNOLOGIES = 126; // 0x7e
279    field public static final int SR_MEDIZINELEKTRONIK = 161; // 0xa1
280    field public static final int STACCATO_COMMUNICATIONS = 77; // 0x4d
281    field public static final int STALMART_TECHNOLOGY = 191; // 0xbf
282    field public static final int STARKEY_LABORATORIES = 186; // 0xba
283    field public static final int STOLLMAN_E_PLUS_V = 143; // 0x8f
284    field public static final int STONESTREET_ONE = 94; // 0x5e
285    field public static final int ST_MICROELECTRONICS = 48; // 0x30
286    field public static final int SUMMIT_DATA_COMMUNICATIONS = 110; // 0x6e
287    field public static final int SUUNTO = 159; // 0x9f
288    field public static final int SWIRL_NETWORKS = 181; // 0xb5
289    field public static final int SYMBOL_TECHNOLOGIES = 42; // 0x2a
290    field public static final int SYNOPSYS = 49; // 0x31
291    field public static final int SYSTEMS_AND_CHIPS = 62; // 0x3e
292    field public static final int S_POWER_ELECTRONICS = 187; // 0xbb
293    field public static final int TAIXINGBANG_TECHNOLOGY = 211; // 0xd3
294    field public static final int TENOVIS = 43; // 0x2b
295    field public static final int TERAX = 56; // 0x38
296    field public static final int TEXAS_INSTRUMENTS = 13; // 0xd
297    field public static final int THINKOPTICS = 146; // 0x92
298    field public static final int THREECOM = 5; // 0x5
299    field public static final int THREE_DIJOY = 84; // 0x54
300    field public static final int THREE_DSP = 73; // 0x49
301    field public static final int TIMEKEEPING_SYSTEMS = 131; // 0x83
302    field public static final int TIMEX_GROUP_USA = 214; // 0xd6
303    field public static final int TOPCORN_POSITIONING_SYSTEMS = 139; // 0x8b
304    field public static final int TOSHIBA = 4; // 0x4
305    field public static final int TRANSILICA = 24; // 0x18
306    field public static final int TRELAB = 183; // 0xb7
307    field public static final int TTPCOM = 26; // 0x1a
308    field public static final int TXTR = 218; // 0xda
309    field public static final int TZERO_TECHNOLOGIES = 81; // 0x51
310    field public static final int UNIVERSAL_ELECTRONICS = 147; // 0x93
311    field public static final int VERTU = 162; // 0xa2
312    field public static final int VISTEON = 167; // 0xa7
313    field public static final int VIZIO = 88; // 0x58
314    field public static final int VOYETRA_TURTLE_BEACH = 217; // 0xd9
315    field public static final int WAVEPLUS_TECHNOLOGY = 35; // 0x23
316    field public static final int WICENTRIC = 95; // 0x5f
317    field public static final int WIDCOMM = 17; // 0x11
318    field public static final int WUXI_VIMICRO = 129; // 0x81
319    field public static final int ZEEVO = 18; // 0x12
320    field public static final int ZER01_TV = 152; // 0x98
321    field public static final int ZOMM = 116; // 0x74
322    field public static final int ZSCAN_SOFTWARE = 141; // 0x8d
323  }
324
325  public final class BluetoothClass implements android.os.Parcelable {
326    method public int describeContents();
327    method public boolean doesClassMatch(int);
328    method public int getDeviceClass();
329    method public int getMajorDeviceClass();
330    method public boolean hasService(int);
331    method public void writeToParcel(android.os.Parcel, int);
332    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothClass> CREATOR;
333    field public static final int PROFILE_A2DP = 1; // 0x1
334    field public static final int PROFILE_HEADSET = 0; // 0x0
335    field public static final int PROFILE_HID = 3; // 0x3
336  }
337
338  public static class BluetoothClass.Device {
339    ctor public BluetoothClass.Device();
340    field public static final int AUDIO_VIDEO_CAMCORDER = 1076; // 0x434
341    field public static final int AUDIO_VIDEO_CAR_AUDIO = 1056; // 0x420
342    field public static final int AUDIO_VIDEO_HANDSFREE = 1032; // 0x408
343    field public static final int AUDIO_VIDEO_HEADPHONES = 1048; // 0x418
344    field public static final int AUDIO_VIDEO_HIFI_AUDIO = 1064; // 0x428
345    field public static final int AUDIO_VIDEO_LOUDSPEAKER = 1044; // 0x414
346    field public static final int AUDIO_VIDEO_MICROPHONE = 1040; // 0x410
347    field public static final int AUDIO_VIDEO_PORTABLE_AUDIO = 1052; // 0x41c
348    field public static final int AUDIO_VIDEO_SET_TOP_BOX = 1060; // 0x424
349    field public static final int AUDIO_VIDEO_UNCATEGORIZED = 1024; // 0x400
350    field public static final int AUDIO_VIDEO_VCR = 1068; // 0x42c
351    field public static final int AUDIO_VIDEO_VIDEO_CAMERA = 1072; // 0x430
352    field public static final int AUDIO_VIDEO_VIDEO_CONFERENCING = 1088; // 0x440
353    field public static final int AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER = 1084; // 0x43c
354    field public static final int AUDIO_VIDEO_VIDEO_GAMING_TOY = 1096; // 0x448
355    field public static final int AUDIO_VIDEO_VIDEO_MONITOR = 1080; // 0x438
356    field public static final int AUDIO_VIDEO_WEARABLE_HEADSET = 1028; // 0x404
357    field public static final int COMPUTER_DESKTOP = 260; // 0x104
358    field public static final int COMPUTER_HANDHELD_PC_PDA = 272; // 0x110
359    field public static final int COMPUTER_LAPTOP = 268; // 0x10c
360    field public static final int COMPUTER_PALM_SIZE_PC_PDA = 276; // 0x114
361    field public static final int COMPUTER_SERVER = 264; // 0x108
362    field public static final int COMPUTER_UNCATEGORIZED = 256; // 0x100
363    field public static final int COMPUTER_WEARABLE = 280; // 0x118
364    field public static final int HEALTH_BLOOD_PRESSURE = 2308; // 0x904
365    field public static final int HEALTH_DATA_DISPLAY = 2332; // 0x91c
366    field public static final int HEALTH_GLUCOSE = 2320; // 0x910
367    field public static final int HEALTH_PULSE_OXIMETER = 2324; // 0x914
368    field public static final int HEALTH_PULSE_RATE = 2328; // 0x918
369    field public static final int HEALTH_THERMOMETER = 2312; // 0x908
370    field public static final int HEALTH_UNCATEGORIZED = 2304; // 0x900
371    field public static final int HEALTH_WEIGHING = 2316; // 0x90c
372    field public static final int PERIPHERAL_KEYBOARD = 1344; // 0x540
373    field public static final int PERIPHERAL_KEYBOARD_POINTING = 1472; // 0x5c0
374    field public static final int PERIPHERAL_NON_KEYBOARD_NON_POINTING = 1280; // 0x500
375    field public static final int PERIPHERAL_POINTING = 1408; // 0x580
376    field public static final int PHONE_CELLULAR = 516; // 0x204
377    field public static final int PHONE_CORDLESS = 520; // 0x208
378    field public static final int PHONE_ISDN = 532; // 0x214
379    field public static final int PHONE_MODEM_OR_GATEWAY = 528; // 0x210
380    field public static final int PHONE_SMART = 524; // 0x20c
381    field public static final int PHONE_UNCATEGORIZED = 512; // 0x200
382    field public static final int TOY_CONTROLLER = 2064; // 0x810
383    field public static final int TOY_DOLL_ACTION_FIGURE = 2060; // 0x80c
384    field public static final int TOY_GAME = 2068; // 0x814
385    field public static final int TOY_ROBOT = 2052; // 0x804
386    field public static final int TOY_UNCATEGORIZED = 2048; // 0x800
387    field public static final int TOY_VEHICLE = 2056; // 0x808
388    field public static final int WEARABLE_GLASSES = 1812; // 0x714
389    field public static final int WEARABLE_HELMET = 1808; // 0x710
390    field public static final int WEARABLE_JACKET = 1804; // 0x70c
391    field public static final int WEARABLE_PAGER = 1800; // 0x708
392    field public static final int WEARABLE_UNCATEGORIZED = 1792; // 0x700
393    field public static final int WEARABLE_WRIST_WATCH = 1796; // 0x704
394  }
395
396  public static class BluetoothClass.Device.Major {
397    ctor public BluetoothClass.Device.Major();
398    field public static final int AUDIO_VIDEO = 1024; // 0x400
399    field public static final int COMPUTER = 256; // 0x100
400    field public static final int HEALTH = 2304; // 0x900
401    field public static final int IMAGING = 1536; // 0x600
402    field public static final int MISC = 0; // 0x0
403    field public static final int NETWORKING = 768; // 0x300
404    field public static final int PERIPHERAL = 1280; // 0x500
405    field public static final int PHONE = 512; // 0x200
406    field public static final int TOY = 2048; // 0x800
407    field public static final int UNCATEGORIZED = 7936; // 0x1f00
408    field public static final int WEARABLE = 1792; // 0x700
409  }
410
411  public static final class BluetoothClass.Service {
412    ctor public BluetoothClass.Service();
413    field public static final int AUDIO = 2097152; // 0x200000
414    field public static final int CAPTURE = 524288; // 0x80000
415    field public static final int INFORMATION = 8388608; // 0x800000
416    field public static final int LE_AUDIO = 16384; // 0x4000
417    field public static final int LIMITED_DISCOVERABILITY = 8192; // 0x2000
418    field public static final int NETWORKING = 131072; // 0x20000
419    field public static final int OBJECT_TRANSFER = 1048576; // 0x100000
420    field public static final int POSITIONING = 65536; // 0x10000
421    field public static final int RENDER = 262144; // 0x40000
422    field public static final int TELEPHONY = 4194304; // 0x400000
423  }
424
425  public final class BluetoothCodecConfig implements android.os.Parcelable {
426    method public int describeContents();
427    method public int getBitsPerSample();
428    method public int getChannelMode();
429    method public int getCodecPriority();
430    method public long getCodecSpecific1();
431    method public long getCodecSpecific2();
432    method public long getCodecSpecific3();
433    method public long getCodecSpecific4();
434    method @Deprecated public int getCodecType();
435    method @Nullable public android.bluetooth.BluetoothCodecType getExtendedCodecType();
436    method public int getSampleRate();
437    method public boolean isMandatoryCodec();
438    method public void writeToParcel(android.os.Parcel, int);
439    field public static final int BITS_PER_SAMPLE_16 = 1; // 0x1
440    field public static final int BITS_PER_SAMPLE_24 = 2; // 0x2
441    field public static final int BITS_PER_SAMPLE_32 = 4; // 0x4
442    field public static final int BITS_PER_SAMPLE_NONE = 0; // 0x0
443    field public static final int CHANNEL_MODE_MONO = 1; // 0x1
444    field public static final int CHANNEL_MODE_NONE = 0; // 0x0
445    field public static final int CHANNEL_MODE_STEREO = 2; // 0x2
446    field public static final int CODEC_PRIORITY_DEFAULT = 0; // 0x0
447    field public static final int CODEC_PRIORITY_DISABLED = -1; // 0xffffffff
448    field public static final int CODEC_PRIORITY_HIGHEST = 1000000; // 0xf4240
449    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothCodecConfig> CREATOR;
450    field public static final int SAMPLE_RATE_176400 = 16; // 0x10
451    field public static final int SAMPLE_RATE_192000 = 32; // 0x20
452    field public static final int SAMPLE_RATE_44100 = 1; // 0x1
453    field public static final int SAMPLE_RATE_48000 = 2; // 0x2
454    field public static final int SAMPLE_RATE_88200 = 4; // 0x4
455    field public static final int SAMPLE_RATE_96000 = 8; // 0x8
456    field public static final int SAMPLE_RATE_NONE = 0; // 0x0
457    field @Deprecated public static final int SOURCE_CODEC_TYPE_AAC = 1; // 0x1
458    field @Deprecated public static final int SOURCE_CODEC_TYPE_APTX = 2; // 0x2
459    field @Deprecated public static final int SOURCE_CODEC_TYPE_APTX_HD = 3; // 0x3
460    field @Deprecated public static final int SOURCE_CODEC_TYPE_INVALID = 1000000; // 0xf4240
461    field @Deprecated public static final int SOURCE_CODEC_TYPE_LC3 = 5; // 0x5
462    field @Deprecated public static final int SOURCE_CODEC_TYPE_LDAC = 4; // 0x4
463    field @Deprecated public static final int SOURCE_CODEC_TYPE_OPUS = 6; // 0x6
464    field @Deprecated public static final int SOURCE_CODEC_TYPE_SBC = 0; // 0x0
465  }
466
467  public static final class BluetoothCodecConfig.Builder {
468    ctor public BluetoothCodecConfig.Builder();
469    method @NonNull public android.bluetooth.BluetoothCodecConfig build();
470    method @NonNull public android.bluetooth.BluetoothCodecConfig.Builder setBitsPerSample(int);
471    method @NonNull public android.bluetooth.BluetoothCodecConfig.Builder setChannelMode(int);
472    method @NonNull public android.bluetooth.BluetoothCodecConfig.Builder setCodecPriority(int);
473    method @NonNull public android.bluetooth.BluetoothCodecConfig.Builder setCodecSpecific1(long);
474    method @NonNull public android.bluetooth.BluetoothCodecConfig.Builder setCodecSpecific2(long);
475    method @NonNull public android.bluetooth.BluetoothCodecConfig.Builder setCodecSpecific3(long);
476    method @NonNull public android.bluetooth.BluetoothCodecConfig.Builder setCodecSpecific4(long);
477    method @Deprecated @NonNull public android.bluetooth.BluetoothCodecConfig.Builder setCodecType(int);
478    method @NonNull public android.bluetooth.BluetoothCodecConfig.Builder setExtendedCodecType(@Nullable android.bluetooth.BluetoothCodecType);
479    method @NonNull public android.bluetooth.BluetoothCodecConfig.Builder setSampleRate(int);
480  }
481
482  public final class BluetoothCodecStatus implements android.os.Parcelable {
483    method public int describeContents();
484    method @Nullable public android.bluetooth.BluetoothCodecConfig getCodecConfig();
485    method @NonNull public java.util.List<android.bluetooth.BluetoothCodecConfig> getCodecsLocalCapabilities();
486    method @NonNull public java.util.List<android.bluetooth.BluetoothCodecConfig> getCodecsSelectableCapabilities();
487    method public boolean isCodecConfigSelectable(@Nullable android.bluetooth.BluetoothCodecConfig);
488    method public void writeToParcel(@NonNull android.os.Parcel, int);
489    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothCodecStatus> CREATOR;
490    field public static final String EXTRA_CODEC_STATUS = "android.bluetooth.extra.CODEC_STATUS";
491  }
492
493  public static final class BluetoothCodecStatus.Builder {
494    ctor public BluetoothCodecStatus.Builder();
495    method @NonNull public android.bluetooth.BluetoothCodecStatus build();
496    method @NonNull public android.bluetooth.BluetoothCodecStatus.Builder setCodecConfig(@NonNull android.bluetooth.BluetoothCodecConfig);
497    method @NonNull public android.bluetooth.BluetoothCodecStatus.Builder setCodecsLocalCapabilities(@NonNull java.util.List<android.bluetooth.BluetoothCodecConfig>);
498    method @NonNull public android.bluetooth.BluetoothCodecStatus.Builder setCodecsSelectableCapabilities(@NonNull java.util.List<android.bluetooth.BluetoothCodecConfig>);
499  }
500
501  public final class BluetoothCodecType implements android.os.Parcelable {
502    method public int describeContents();
503    method public long getCodecId();
504    method @NonNull public String getCodecName();
505    method public boolean isMandatoryCodec();
506    method public void writeToParcel(@NonNull android.os.Parcel, int);
507    field public static final long CODEC_ID_AAC = 2L; // 0x2L
508    field public static final long CODEC_ID_APTX = 16797695L; // 0x1004fffL
509    field public static final long CODEC_ID_APTX_HD = 604035071L; // 0x2400d7ffL
510    field public static final long CODEC_ID_LDAC = -1442763265L; // 0xffffffffaa012dffL
511    field @FlaggedApi("com.android.bluetooth.flags.a2dp_lhdc_api") public static final long CODEC_ID_LHDCV5 = 327307049727L; // 0x4c35053affL
512    field public static final long CODEC_ID_OPUS = 16834815L; // 0x100e0ffL
513    field public static final long CODEC_ID_SBC = 0L; // 0x0L
514    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothCodecType> CREATOR;
515  }
516
517  public final class BluetoothCsipSetCoordinator implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile {
518    method public void close();
519    method protected void finalize();
520    method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
521    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@Nullable android.bluetooth.BluetoothDevice);
522    method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]);
523    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CSIS_CONNECTION_STATE_CHANGED = "android.bluetooth.action.CSIS_CONNECTION_STATE_CHANGED";
524  }
525
526  public final class BluetoothDevice implements android.os.Parcelable {
527    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothGatt connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback);
528    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothGatt connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback, int);
529    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothGatt connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback, int, int);
530    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothGatt connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback, int, int, android.os.Handler);
531    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean createBond();
532    method @NonNull public android.bluetooth.BluetoothSocket createInsecureL2capChannel(int) throws java.io.IOException;
533    method public android.bluetooth.BluetoothSocket createInsecureRfcommSocketToServiceRecord(java.util.UUID) throws java.io.IOException;
534    method @NonNull public android.bluetooth.BluetoothSocket createL2capChannel(int) throws java.io.IOException;
535    method public android.bluetooth.BluetoothSocket createRfcommSocketToServiceRecord(java.util.UUID) throws java.io.IOException;
536    method @FlaggedApi("com.android.bluetooth.flags.socket_settings_api") @NonNull public android.bluetooth.BluetoothSocket createUsingSocketSettings(@NonNull android.bluetooth.BluetoothSocketSettings) throws java.io.IOException;
537    method public int describeContents();
538    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean fetchUuidsWithSdp();
539    method public String getAddress();
540    method public int getAddressType();
541    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public String getAlias();
542    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothClass getBluetoothClass();
543    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getBondState();
544    method @FlaggedApi("com.android.bluetooth.flags.identity_address_type_api") @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BluetoothDevice.BluetoothAddress getIdentityAddressWithType();
545    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public String getName();
546    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getType();
547    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.os.ParcelUuid[] getUuids();
548    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public int setAlias(@Nullable String);
549    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setPairingConfirmation(boolean);
550    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean setPin(byte[]);
551    method public void writeToParcel(android.os.Parcel, int);
552    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACL_CONNECTED = "android.bluetooth.device.action.ACL_CONNECTED";
553    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACL_DISCONNECTED = "android.bluetooth.device.action.ACL_DISCONNECTED";
554    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACL_DISCONNECT_REQUESTED = "android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED";
555    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ALIAS_CHANGED = "android.bluetooth.device.action.ALIAS_CHANGED";
556    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_BOND_STATE_CHANGED = "android.bluetooth.device.action.BOND_STATE_CHANGED";
557    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CLASS_CHANGED = "android.bluetooth.device.action.CLASS_CHANGED";
558    field @FlaggedApi("com.android.bluetooth.flags.encryption_change_broadcast") @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ENCRYPTION_CHANGE = "android.bluetooth.device.action.ENCRYPTION_CHANGE";
559    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public static final String ACTION_FOUND = "android.bluetooth.device.action.FOUND";
560    field @FlaggedApi("com.android.bluetooth.flags.key_missing_public") @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public static final String ACTION_KEY_MISSING = "android.bluetooth.device.action.KEY_MISSING";
561    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_NAME_CHANGED = "android.bluetooth.device.action.NAME_CHANGED";
562    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_PAIRING_REQUEST = "android.bluetooth.device.action.PAIRING_REQUEST";
563    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_UUID = "android.bluetooth.device.action.UUID";
564    field public static final int ADDRESS_TYPE_ANONYMOUS = 255; // 0xff
565    field public static final int ADDRESS_TYPE_PUBLIC = 0; // 0x0
566    field public static final int ADDRESS_TYPE_RANDOM = 1; // 0x1
567    field public static final int ADDRESS_TYPE_UNKNOWN = 65535; // 0xffff
568    field public static final int BOND_BONDED = 12; // 0xc
569    field public static final int BOND_BONDING = 11; // 0xb
570    field public static final int BOND_NONE = 10; // 0xa
571    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothDevice> CREATOR;
572    field public static final int DEVICE_TYPE_CLASSIC = 1; // 0x1
573    field public static final int DEVICE_TYPE_DUAL = 3; // 0x3
574    field public static final int DEVICE_TYPE_LE = 2; // 0x2
575    field public static final int DEVICE_TYPE_UNKNOWN = 0; // 0x0
576    field @FlaggedApi("com.android.bluetooth.flags.encryption_change_broadcast") public static final int ENCRYPTION_ALGORITHM_AES = 2; // 0x2
577    field @FlaggedApi("com.android.bluetooth.flags.encryption_change_broadcast") public static final int ENCRYPTION_ALGORITHM_E0 = 1; // 0x1
578    field @FlaggedApi("com.android.bluetooth.flags.encryption_change_broadcast") public static final int ENCRYPTION_ALGORITHM_NONE = 0; // 0x0
579    field public static final int ERROR = -2147483648; // 0x80000000
580    field public static final String EXTRA_BOND_STATE = "android.bluetooth.device.extra.BOND_STATE";
581    field public static final String EXTRA_CLASS = "android.bluetooth.device.extra.CLASS";
582    field public static final String EXTRA_DEVICE = "android.bluetooth.device.extra.DEVICE";
583    field @FlaggedApi("com.android.bluetooth.flags.encryption_change_broadcast") public static final String EXTRA_ENCRYPTION_ALGORITHM = "android.bluetooth.device.extra.EXTRA_ENCRYPTION_ALGORITHM";
584    field @FlaggedApi("com.android.bluetooth.flags.encryption_change_broadcast") public static final String EXTRA_ENCRYPTION_ENABLED = "android.bluetooth.device.extra.ENCRYPTION_ENABLED";
585    field @FlaggedApi("com.android.bluetooth.flags.encryption_change_broadcast") public static final String EXTRA_ENCRYPTION_STATUS = "android.bluetooth.device.extra.ENCRYPTION_STATUS";
586    field public static final String EXTRA_IS_COORDINATED_SET_MEMBER = "android.bluetooth.extra.IS_COORDINATED_SET_MEMBER";
587    field @FlaggedApi("com.android.bluetooth.flags.encryption_change_broadcast") public static final String EXTRA_KEY_SIZE = "android.bluetooth.device.extra.KEY_SIZE";
588    field public static final String EXTRA_NAME = "android.bluetooth.device.extra.NAME";
589    field public static final String EXTRA_PAIRING_KEY = "android.bluetooth.device.extra.PAIRING_KEY";
590    field public static final String EXTRA_PAIRING_VARIANT = "android.bluetooth.device.extra.PAIRING_VARIANT";
591    field public static final String EXTRA_PREVIOUS_BOND_STATE = "android.bluetooth.device.extra.PREVIOUS_BOND_STATE";
592    field public static final String EXTRA_RSSI = "android.bluetooth.device.extra.RSSI";
593    field public static final String EXTRA_TRANSPORT = "android.bluetooth.device.extra.TRANSPORT";
594    field public static final String EXTRA_UUID = "android.bluetooth.device.extra.UUID";
595    field public static final int PAIRING_VARIANT_PASSKEY_CONFIRMATION = 2; // 0x2
596    field public static final int PAIRING_VARIANT_PIN = 0; // 0x0
597    field public static final int PHY_LE_1M = 1; // 0x1
598    field public static final int PHY_LE_1M_MASK = 1; // 0x1
599    field public static final int PHY_LE_2M = 2; // 0x2
600    field public static final int PHY_LE_2M_MASK = 2; // 0x2
601    field public static final int PHY_LE_CODED = 3; // 0x3
602    field public static final int PHY_LE_CODED_MASK = 4; // 0x4
603    field public static final int PHY_OPTION_NO_PREFERRED = 0; // 0x0
604    field public static final int PHY_OPTION_S2 = 1; // 0x1
605    field public static final int PHY_OPTION_S8 = 2; // 0x2
606    field public static final int TRANSPORT_AUTO = 0; // 0x0
607    field public static final int TRANSPORT_BREDR = 1; // 0x1
608    field public static final int TRANSPORT_LE = 2; // 0x2
609  }
610
611  @FlaggedApi("com.android.bluetooth.flags.identity_address_type_api") public static final class BluetoothDevice.BluetoothAddress implements android.os.Parcelable {
612    ctor public BluetoothDevice.BluetoothAddress(@Nullable String, int);
613    method public int describeContents();
614    method @Nullable public String getAddress();
615    method public int getAddressType();
616    method public void writeToParcel(@NonNull android.os.Parcel, int);
617    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothDevice.BluetoothAddress> CREATOR;
618  }
619
620  public final class BluetoothGatt implements android.bluetooth.BluetoothProfile {
621    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void abortReliableWrite();
622    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void abortReliableWrite(android.bluetooth.BluetoothDevice);
623    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean beginReliableWrite();
624    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void close();
625    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean connect();
626    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void disconnect();
627    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean discoverServices();
628    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean executeReliableWrite();
629    method @Deprecated public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
630    method @Deprecated public int getConnectionState(android.bluetooth.BluetoothDevice);
631    method public android.bluetooth.BluetoothDevice getDevice();
632    method @Deprecated public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
633    method public android.bluetooth.BluetoothGattService getService(java.util.UUID);
634    method public java.util.List<android.bluetooth.BluetoothGattService> getServices();
635    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean readCharacteristic(android.bluetooth.BluetoothGattCharacteristic);
636    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean readDescriptor(android.bluetooth.BluetoothGattDescriptor);
637    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void readPhy();
638    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean readRemoteRssi();
639    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean requestConnectionPriority(int);
640    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean requestMtu(int);
641    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean setCharacteristicNotification(android.bluetooth.BluetoothGattCharacteristic, boolean);
642    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void setPreferredPhy(int, int, int);
643    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic);
644    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int writeCharacteristic(@NonNull android.bluetooth.BluetoothGattCharacteristic, @NonNull byte[], int);
645    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean writeDescriptor(android.bluetooth.BluetoothGattDescriptor);
646    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int writeDescriptor(@NonNull android.bluetooth.BluetoothGattDescriptor, @NonNull byte[]);
647    field public static final int CONNECTION_PRIORITY_BALANCED = 0; // 0x0
648    field public static final int CONNECTION_PRIORITY_DCK = 3; // 0x3
649    field public static final int CONNECTION_PRIORITY_HIGH = 1; // 0x1
650    field public static final int CONNECTION_PRIORITY_LOW_POWER = 2; // 0x2
651    field public static final int GATT_CONNECTION_CONGESTED = 143; // 0x8f
652    field public static final int GATT_CONNECTION_TIMEOUT = 147; // 0x93
653    field public static final int GATT_FAILURE = 257; // 0x101
654    field public static final int GATT_INSUFFICIENT_AUTHENTICATION = 5; // 0x5
655    field public static final int GATT_INSUFFICIENT_AUTHORIZATION = 8; // 0x8
656    field public static final int GATT_INSUFFICIENT_ENCRYPTION = 15; // 0xf
657    field public static final int GATT_INVALID_ATTRIBUTE_LENGTH = 13; // 0xd
658    field public static final int GATT_INVALID_OFFSET = 7; // 0x7
659    field public static final int GATT_READ_NOT_PERMITTED = 2; // 0x2
660    field public static final int GATT_REQUEST_NOT_SUPPORTED = 6; // 0x6
661    field public static final int GATT_SUCCESS = 0; // 0x0
662    field public static final int GATT_WRITE_NOT_PERMITTED = 3; // 0x3
663  }
664
665  public abstract class BluetoothGattCallback {
666    ctor public BluetoothGattCallback();
667    method @Deprecated public void onCharacteristicChanged(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattCharacteristic);
668    method public void onCharacteristicChanged(@NonNull android.bluetooth.BluetoothGatt, @NonNull android.bluetooth.BluetoothGattCharacteristic, @NonNull byte[]);
669    method @Deprecated public void onCharacteristicRead(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattCharacteristic, int);
670    method public void onCharacteristicRead(@NonNull android.bluetooth.BluetoothGatt, @NonNull android.bluetooth.BluetoothGattCharacteristic, @NonNull byte[], int);
671    method public void onCharacteristicWrite(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattCharacteristic, int);
672    method public void onConnectionStateChange(android.bluetooth.BluetoothGatt, int, int);
673    method @Deprecated public void onDescriptorRead(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattDescriptor, int);
674    method public void onDescriptorRead(@NonNull android.bluetooth.BluetoothGatt, @NonNull android.bluetooth.BluetoothGattDescriptor, int, @NonNull byte[]);
675    method public void onDescriptorWrite(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattDescriptor, int);
676    method public void onMtuChanged(android.bluetooth.BluetoothGatt, int, int);
677    method public void onPhyRead(android.bluetooth.BluetoothGatt, int, int, int);
678    method public void onPhyUpdate(android.bluetooth.BluetoothGatt, int, int, int);
679    method public void onReadRemoteRssi(android.bluetooth.BluetoothGatt, int, int);
680    method public void onReliableWriteCompleted(android.bluetooth.BluetoothGatt, int);
681    method public void onServiceChanged(@NonNull android.bluetooth.BluetoothGatt);
682    method public void onServicesDiscovered(android.bluetooth.BluetoothGatt, int);
683  }
684
685  public class BluetoothGattCharacteristic implements android.os.Parcelable {
686    ctor public BluetoothGattCharacteristic(java.util.UUID, int, int);
687    method public boolean addDescriptor(android.bluetooth.BluetoothGattDescriptor);
688    method public int describeContents();
689    method public android.bluetooth.BluetoothGattDescriptor getDescriptor(java.util.UUID);
690    method public java.util.List<android.bluetooth.BluetoothGattDescriptor> getDescriptors();
691    method @Deprecated public Float getFloatValue(int, int);
692    method public int getInstanceId();
693    method @Deprecated public Integer getIntValue(int, int);
694    method public int getPermissions();
695    method public int getProperties();
696    method public android.bluetooth.BluetoothGattService getService();
697    method @Deprecated public String getStringValue(int);
698    method public java.util.UUID getUuid();
699    method @Deprecated public byte[] getValue();
700    method public int getWriteType();
701    method @Deprecated public boolean setValue(byte[]);
702    method @Deprecated public boolean setValue(int, int, int);
703    method @Deprecated public boolean setValue(int, int, int, int);
704    method @Deprecated public boolean setValue(String);
705    method public void setWriteType(int);
706    method public void writeToParcel(android.os.Parcel, int);
707    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothGattCharacteristic> CREATOR;
708    field public static final int FORMAT_FLOAT = 52; // 0x34
709    field public static final int FORMAT_SFLOAT = 50; // 0x32
710    field public static final int FORMAT_SINT16 = 34; // 0x22
711    field public static final int FORMAT_SINT32 = 36; // 0x24
712    field public static final int FORMAT_SINT8 = 33; // 0x21
713    field public static final int FORMAT_UINT16 = 18; // 0x12
714    field public static final int FORMAT_UINT32 = 20; // 0x14
715    field public static final int FORMAT_UINT8 = 17; // 0x11
716    field public static final int PERMISSION_READ = 1; // 0x1
717    field public static final int PERMISSION_READ_ENCRYPTED = 2; // 0x2
718    field public static final int PERMISSION_READ_ENCRYPTED_MITM = 4; // 0x4
719    field public static final int PERMISSION_WRITE = 16; // 0x10
720    field public static final int PERMISSION_WRITE_ENCRYPTED = 32; // 0x20
721    field public static final int PERMISSION_WRITE_ENCRYPTED_MITM = 64; // 0x40
722    field public static final int PERMISSION_WRITE_SIGNED = 128; // 0x80
723    field public static final int PERMISSION_WRITE_SIGNED_MITM = 256; // 0x100
724    field public static final int PROPERTY_BROADCAST = 1; // 0x1
725    field public static final int PROPERTY_EXTENDED_PROPS = 128; // 0x80
726    field public static final int PROPERTY_INDICATE = 32; // 0x20
727    field public static final int PROPERTY_NOTIFY = 16; // 0x10
728    field public static final int PROPERTY_READ = 2; // 0x2
729    field public static final int PROPERTY_SIGNED_WRITE = 64; // 0x40
730    field public static final int PROPERTY_WRITE = 8; // 0x8
731    field public static final int PROPERTY_WRITE_NO_RESPONSE = 4; // 0x4
732    field public static final int WRITE_TYPE_DEFAULT = 2; // 0x2
733    field public static final int WRITE_TYPE_NO_RESPONSE = 1; // 0x1
734    field public static final int WRITE_TYPE_SIGNED = 4; // 0x4
735    field protected java.util.List<android.bluetooth.BluetoothGattDescriptor> mDescriptors;
736  }
737
738  public class BluetoothGattDescriptor implements android.os.Parcelable {
739    ctor public BluetoothGattDescriptor(java.util.UUID, int);
740    method public int describeContents();
741    method public android.bluetooth.BluetoothGattCharacteristic getCharacteristic();
742    method public int getPermissions();
743    method public java.util.UUID getUuid();
744    method @Deprecated public byte[] getValue();
745    method @Deprecated public boolean setValue(byte[]);
746    method public void writeToParcel(android.os.Parcel, int);
747    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothGattDescriptor> CREATOR;
748    field public static final byte[] DISABLE_NOTIFICATION_VALUE;
749    field public static final byte[] ENABLE_INDICATION_VALUE;
750    field public static final byte[] ENABLE_NOTIFICATION_VALUE;
751    field public static final int PERMISSION_READ = 1; // 0x1
752    field public static final int PERMISSION_READ_ENCRYPTED = 2; // 0x2
753    field public static final int PERMISSION_READ_ENCRYPTED_MITM = 4; // 0x4
754    field public static final int PERMISSION_WRITE = 16; // 0x10
755    field public static final int PERMISSION_WRITE_ENCRYPTED = 32; // 0x20
756    field public static final int PERMISSION_WRITE_ENCRYPTED_MITM = 64; // 0x40
757    field public static final int PERMISSION_WRITE_SIGNED = 128; // 0x80
758    field public static final int PERMISSION_WRITE_SIGNED_MITM = 256; // 0x100
759  }
760
761  public final class BluetoothGattServer implements android.bluetooth.BluetoothProfile {
762    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean addService(android.bluetooth.BluetoothGattService);
763    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void cancelConnection(android.bluetooth.BluetoothDevice);
764    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void clearServices();
765    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void close();
766    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean connect(android.bluetooth.BluetoothDevice, boolean);
767    method public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
768    method public int getConnectionState(android.bluetooth.BluetoothDevice);
769    method public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
770    method public android.bluetooth.BluetoothGattService getService(java.util.UUID);
771    method public java.util.List<android.bluetooth.BluetoothGattService> getServices();
772    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean notifyCharacteristicChanged(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothGattCharacteristic, boolean);
773    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int notifyCharacteristicChanged(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothGattCharacteristic, boolean, @NonNull byte[]);
774    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void readPhy(android.bluetooth.BluetoothDevice);
775    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean removeService(android.bluetooth.BluetoothGattService);
776    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean sendResponse(android.bluetooth.BluetoothDevice, int, int, int, byte[]);
777    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void setPreferredPhy(android.bluetooth.BluetoothDevice, int, int, int);
778  }
779
780  public abstract class BluetoothGattServerCallback {
781    ctor public BluetoothGattServerCallback();
782    method public void onCharacteristicReadRequest(android.bluetooth.BluetoothDevice, int, int, android.bluetooth.BluetoothGattCharacteristic);
783    method public void onCharacteristicWriteRequest(android.bluetooth.BluetoothDevice, int, android.bluetooth.BluetoothGattCharacteristic, boolean, boolean, int, byte[]);
784    method public void onConnectionStateChange(android.bluetooth.BluetoothDevice, int, int);
785    method public void onDescriptorReadRequest(android.bluetooth.BluetoothDevice, int, int, android.bluetooth.BluetoothGattDescriptor);
786    method public void onDescriptorWriteRequest(android.bluetooth.BluetoothDevice, int, android.bluetooth.BluetoothGattDescriptor, boolean, boolean, int, byte[]);
787    method public void onExecuteWrite(android.bluetooth.BluetoothDevice, int, boolean);
788    method public void onMtuChanged(android.bluetooth.BluetoothDevice, int);
789    method public void onNotificationSent(android.bluetooth.BluetoothDevice, int);
790    method public void onPhyRead(android.bluetooth.BluetoothDevice, int, int, int);
791    method public void onPhyUpdate(android.bluetooth.BluetoothDevice, int, int, int);
792    method public void onServiceAdded(int, android.bluetooth.BluetoothGattService);
793  }
794
795  public class BluetoothGattService implements android.os.Parcelable {
796    ctor public BluetoothGattService(java.util.UUID, int);
797    method public boolean addCharacteristic(android.bluetooth.BluetoothGattCharacteristic);
798    method public boolean addService(android.bluetooth.BluetoothGattService);
799    method public int describeContents();
800    method public android.bluetooth.BluetoothGattCharacteristic getCharacteristic(java.util.UUID);
801    method public java.util.List<android.bluetooth.BluetoothGattCharacteristic> getCharacteristics();
802    method public java.util.List<android.bluetooth.BluetoothGattService> getIncludedServices();
803    method public int getInstanceId();
804    method public int getType();
805    method public java.util.UUID getUuid();
806    method public void writeToParcel(android.os.Parcel, int);
807    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothGattService> CREATOR;
808    field public static final int SERVICE_TYPE_PRIMARY = 0; // 0x0
809    field public static final int SERVICE_TYPE_SECONDARY = 1; // 0x1
810    field protected java.util.List<android.bluetooth.BluetoothGattCharacteristic> mCharacteristics;
811    field protected java.util.List<android.bluetooth.BluetoothGattService> mIncludedServices;
812  }
813
814  public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile {
815    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
816    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice);
817    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
818    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isAudioConnected(android.bluetooth.BluetoothDevice);
819    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isNoiseReductionSupported(@NonNull android.bluetooth.BluetoothDevice);
820    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isVoiceRecognitionSupported(@NonNull android.bluetooth.BluetoothDevice);
821    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean sendVendorSpecificResultCode(android.bluetooth.BluetoothDevice, String, String);
822    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean startVoiceRecognition(android.bluetooth.BluetoothDevice);
823    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean stopVoiceRecognition(android.bluetooth.BluetoothDevice);
824    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_AUDIO_STATE_CHANGED = "android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED";
825    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED";
826    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_VENDOR_SPECIFIC_HEADSET_EVENT = "android.bluetooth.headset.action.VENDOR_SPECIFIC_HEADSET_EVENT";
827    field public static final int AT_CMD_TYPE_ACTION = 4; // 0x4
828    field public static final int AT_CMD_TYPE_BASIC = 3; // 0x3
829    field public static final int AT_CMD_TYPE_READ = 0; // 0x0
830    field public static final int AT_CMD_TYPE_SET = 2; // 0x2
831    field public static final int AT_CMD_TYPE_TEST = 1; // 0x1
832    field public static final String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_ARGS";
833    field public static final String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD";
834    field public static final String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE";
835    field public static final int STATE_AUDIO_CONNECTED = 12; // 0xc
836    field public static final int STATE_AUDIO_CONNECTING = 11; // 0xb
837    field public static final int STATE_AUDIO_DISCONNECTED = 10; // 0xa
838    field public static final String VENDOR_RESULT_CODE_COMMAND_ANDROID = "+ANDROID";
839    field public static final String VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY = "android.bluetooth.headset.intent.category.companyid";
840  }
841
842  @Deprecated public final class BluetoothHealth implements android.bluetooth.BluetoothProfile {
843    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean connectChannelToSource(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration);
844    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disconnectChannel(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration, int);
845    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
846    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice);
847    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
848    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.os.ParcelFileDescriptor getMainChannelFd(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration);
849    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean registerSinkAppConfiguration(String, int, android.bluetooth.BluetoothHealthCallback);
850    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean unregisterAppConfiguration(android.bluetooth.BluetoothHealthAppConfiguration);
851    field @Deprecated public static final int APP_CONFIG_REGISTRATION_FAILURE = 1; // 0x1
852    field @Deprecated public static final int APP_CONFIG_REGISTRATION_SUCCESS = 0; // 0x0
853    field @Deprecated public static final int APP_CONFIG_UNREGISTRATION_FAILURE = 3; // 0x3
854    field @Deprecated public static final int APP_CONFIG_UNREGISTRATION_SUCCESS = 2; // 0x2
855    field @Deprecated public static final int CHANNEL_TYPE_RELIABLE = 10; // 0xa
856    field @Deprecated public static final int CHANNEL_TYPE_STREAMING = 11; // 0xb
857    field @Deprecated public static final int SINK_ROLE = 2; // 0x2
858    field @Deprecated public static final int SOURCE_ROLE = 1; // 0x1
859    field @Deprecated public static final int STATE_CHANNEL_CONNECTED = 2; // 0x2
860    field @Deprecated public static final int STATE_CHANNEL_CONNECTING = 1; // 0x1
861    field @Deprecated public static final int STATE_CHANNEL_DISCONNECTED = 0; // 0x0
862    field @Deprecated public static final int STATE_CHANNEL_DISCONNECTING = 3; // 0x3
863  }
864
865  @Deprecated public final class BluetoothHealthAppConfiguration implements android.os.Parcelable {
866    method @Deprecated public int describeContents();
867    method @Deprecated public int getDataType();
868    method @Deprecated public String getName();
869    method @Deprecated public int getRole();
870    method @Deprecated public void writeToParcel(android.os.Parcel, int);
871    field @Deprecated @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHealthAppConfiguration> CREATOR;
872  }
873
874  @Deprecated public abstract class BluetoothHealthCallback {
875    ctor @Deprecated public BluetoothHealthCallback();
876    method @Deprecated @BinderThread public void onHealthAppConfigurationStatusChange(android.bluetooth.BluetoothHealthAppConfiguration, int);
877    method @Deprecated @BinderThread public void onHealthChannelStateChange(android.bluetooth.BluetoothHealthAppConfiguration, android.bluetooth.BluetoothDevice, int, int, android.os.ParcelFileDescriptor, int);
878  }
879
880  public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile {
881    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
882    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
883    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]);
884    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.hearingaid.profile.action.CONNECTION_STATE_CHANGED";
885  }
886
887  public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile {
888    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean connect(android.bluetooth.BluetoothDevice);
889    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disconnect(android.bluetooth.BluetoothDevice);
890    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
891    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice);
892    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
893    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean registerApp(android.bluetooth.BluetoothHidDeviceAppSdpSettings, android.bluetooth.BluetoothHidDeviceAppQosSettings, android.bluetooth.BluetoothHidDeviceAppQosSettings, java.util.concurrent.Executor, android.bluetooth.BluetoothHidDevice.Callback);
894    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean replyReport(android.bluetooth.BluetoothDevice, byte, byte, byte[]);
895    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean reportError(android.bluetooth.BluetoothDevice, byte);
896    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean sendReport(android.bluetooth.BluetoothDevice, int, byte[]);
897    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean unregisterApp();
898    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.hiddevice.profile.action.CONNECTION_STATE_CHANGED";
899    field public static final byte ERROR_RSP_INVALID_PARAM = 4; // 0x4
900    field public static final byte ERROR_RSP_INVALID_RPT_ID = 2; // 0x2
901    field public static final byte ERROR_RSP_NOT_READY = 1; // 0x1
902    field public static final byte ERROR_RSP_SUCCESS = 0; // 0x0
903    field public static final byte ERROR_RSP_UNKNOWN = 14; // 0xe
904    field public static final byte ERROR_RSP_UNSUPPORTED_REQ = 3; // 0x3
905    field public static final byte PROTOCOL_BOOT_MODE = 0; // 0x0
906    field public static final byte PROTOCOL_REPORT_MODE = 1; // 0x1
907    field public static final byte REPORT_TYPE_FEATURE = 3; // 0x3
908    field public static final byte REPORT_TYPE_INPUT = 1; // 0x1
909    field public static final byte REPORT_TYPE_OUTPUT = 2; // 0x2
910    field public static final byte SUBCLASS1_COMBO = -64; // 0xffffffc0
911    field public static final byte SUBCLASS1_KEYBOARD = 64; // 0x40
912    field public static final byte SUBCLASS1_MOUSE = -128; // 0xffffff80
913    field public static final byte SUBCLASS1_NONE = 0; // 0x0
914    field public static final byte SUBCLASS2_CARD_READER = 6; // 0x6
915    field public static final byte SUBCLASS2_DIGITIZER_TABLET = 5; // 0x5
916    field public static final byte SUBCLASS2_GAMEPAD = 2; // 0x2
917    field public static final byte SUBCLASS2_JOYSTICK = 1; // 0x1
918    field public static final byte SUBCLASS2_REMOTE_CONTROL = 3; // 0x3
919    field public static final byte SUBCLASS2_SENSING_DEVICE = 4; // 0x4
920    field public static final byte SUBCLASS2_UNCATEGORIZED = 0; // 0x0
921  }
922
923  public abstract static class BluetoothHidDevice.Callback {
924    ctor public BluetoothHidDevice.Callback();
925    method public void onAppStatusChanged(android.bluetooth.BluetoothDevice, boolean);
926    method public void onConnectionStateChanged(android.bluetooth.BluetoothDevice, int);
927    method public void onGetReport(android.bluetooth.BluetoothDevice, byte, byte, int);
928    method public void onInterruptData(android.bluetooth.BluetoothDevice, byte, byte[]);
929    method public void onSetProtocol(android.bluetooth.BluetoothDevice, byte);
930    method public void onSetReport(android.bluetooth.BluetoothDevice, byte, byte, byte[]);
931    method public void onVirtualCableUnplug(android.bluetooth.BluetoothDevice);
932  }
933
934  public final class BluetoothHidDeviceAppQosSettings implements android.os.Parcelable {
935    ctor public BluetoothHidDeviceAppQosSettings(int, int, int, int, int, int);
936    method public int describeContents();
937    method public int getDelayVariation();
938    method public int getLatency();
939    method public int getPeakBandwidth();
940    method public int getServiceType();
941    method public int getTokenBucketSize();
942    method public int getTokenRate();
943    method public void writeToParcel(android.os.Parcel, int);
944    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHidDeviceAppQosSettings> CREATOR;
945    field public static final int MAX = -1; // 0xffffffff
946    field public static final int SERVICE_BEST_EFFORT = 1; // 0x1
947    field public static final int SERVICE_GUARANTEED = 2; // 0x2
948    field public static final int SERVICE_NO_TRAFFIC = 0; // 0x0
949  }
950
951  public final class BluetoothHidDeviceAppSdpSettings implements android.os.Parcelable {
952    ctor public BluetoothHidDeviceAppSdpSettings(String, String, String, byte, byte[]);
953    method public int describeContents();
954    method public String getDescription();
955    method public byte[] getDescriptors();
956    method public String getName();
957    method public String getProvider();
958    method public byte getSubclass();
959    method public void writeToParcel(android.os.Parcel, int);
960    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHidDeviceAppSdpSettings> CREATOR;
961  }
962
963  public final class BluetoothLeAudio implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile {
964    method public void close();
965    method protected void finalize();
966    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
967    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothDevice getConnectedGroupLeadDevice(int);
968    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
969    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]);
970    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getGroupId(@NonNull android.bluetooth.BluetoothDevice);
971    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_LE_AUDIO_CONNECTION_STATE_CHANGED = "android.bluetooth.action.LE_AUDIO_CONNECTION_STATE_CHANGED";
972    field public static final int GROUP_ID_INVALID = -1; // 0xffffffff
973  }
974
975  public final class BluetoothLeAudioCodecConfig implements android.os.Parcelable {
976    method public int describeContents();
977    method public int getBitsPerSample();
978    method public int getChannelCount();
979    method @NonNull public String getCodecName();
980    method public int getCodecPriority();
981    method public int getCodecType();
982    method public int getFrameDuration();
983    method public int getMaxOctetsPerFrame();
984    method public int getMinOctetsPerFrame();
985    method public int getOctetsPerFrame();
986    method public int getSampleRate();
987    method public void writeToParcel(@NonNull android.os.Parcel, int);
988    field public static final int BITS_PER_SAMPLE_16 = 1; // 0x1
989    field public static final int BITS_PER_SAMPLE_24 = 2; // 0x2
990    field public static final int BITS_PER_SAMPLE_32 = 8; // 0x8
991    field public static final int BITS_PER_SAMPLE_NONE = 0; // 0x0
992    field public static final int CHANNEL_COUNT_1 = 1; // 0x1
993    field public static final int CHANNEL_COUNT_2 = 2; // 0x2
994    field public static final int CHANNEL_COUNT_NONE = 0; // 0x0
995    field public static final int CODEC_PRIORITY_DEFAULT = 0; // 0x0
996    field public static final int CODEC_PRIORITY_DISABLED = -1; // 0xffffffff
997    field public static final int CODEC_PRIORITY_HIGHEST = 1000000; // 0xf4240
998    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeAudioCodecConfig> CREATOR;
999    field public static final int FRAME_DURATION_10000 = 2; // 0x2
1000    field public static final int FRAME_DURATION_7500 = 1; // 0x1
1001    field public static final int FRAME_DURATION_NONE = 0; // 0x0
1002    field public static final int SAMPLE_RATE_11025 = 2; // 0x2
1003    field public static final int SAMPLE_RATE_16000 = 4; // 0x4
1004    field public static final int SAMPLE_RATE_176400 = 1024; // 0x400
1005    field public static final int SAMPLE_RATE_192000 = 2048; // 0x800
1006    field public static final int SAMPLE_RATE_22050 = 8; // 0x8
1007    field public static final int SAMPLE_RATE_24000 = 16; // 0x10
1008    field public static final int SAMPLE_RATE_32000 = 32; // 0x20
1009    field public static final int SAMPLE_RATE_384000 = 4096; // 0x1000
1010    field public static final int SAMPLE_RATE_44100 = 64; // 0x40
1011    field public static final int SAMPLE_RATE_48000 = 128; // 0x80
1012    field public static final int SAMPLE_RATE_8000 = 1; // 0x1
1013    field public static final int SAMPLE_RATE_88200 = 256; // 0x100
1014    field public static final int SAMPLE_RATE_96000 = 512; // 0x200
1015    field public static final int SAMPLE_RATE_NONE = 0; // 0x0
1016    field public static final int SOURCE_CODEC_TYPE_INVALID = 1000000; // 0xf4240
1017    field public static final int SOURCE_CODEC_TYPE_LC3 = 0; // 0x0
1018    field @FlaggedApi("com.android.bluetooth.flags.leaudio_add_opus_codec_type") public static final int SOURCE_CODEC_TYPE_OPUS = 1; // 0x1
1019  }
1020
1021  public static final class BluetoothLeAudioCodecConfig.Builder {
1022    ctor public BluetoothLeAudioCodecConfig.Builder();
1023    ctor public BluetoothLeAudioCodecConfig.Builder(@NonNull android.bluetooth.BluetoothLeAudioCodecConfig);
1024    method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfig build();
1025    method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfig.Builder setBitsPerSample(int);
1026    method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfig.Builder setChannelCount(int);
1027    method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfig.Builder setCodecPriority(int);
1028    method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfig.Builder setCodecType(int);
1029    method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfig.Builder setFrameDuration(int);
1030    method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfig.Builder setMaxOctetsPerFrame(int);
1031    method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfig.Builder setMinOctetsPerFrame(int);
1032    method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfig.Builder setOctetsPerFrame(int);
1033    method @NonNull public android.bluetooth.BluetoothLeAudioCodecConfig.Builder setSampleRate(int);
1034  }
1035
1036  public final class BluetoothLeAudioCodecStatus implements android.os.Parcelable {
1037    ctor public BluetoothLeAudioCodecStatus(@Nullable android.bluetooth.BluetoothLeAudioCodecConfig, @Nullable android.bluetooth.BluetoothLeAudioCodecConfig, @NonNull java.util.List<android.bluetooth.BluetoothLeAudioCodecConfig>, @NonNull java.util.List<android.bluetooth.BluetoothLeAudioCodecConfig>, @NonNull java.util.List<android.bluetooth.BluetoothLeAudioCodecConfig>, @NonNull java.util.List<android.bluetooth.BluetoothLeAudioCodecConfig>);
1038    method public int describeContents();
1039    method @Nullable public android.bluetooth.BluetoothLeAudioCodecConfig getInputCodecConfig();
1040    method @NonNull public java.util.List<android.bluetooth.BluetoothLeAudioCodecConfig> getInputCodecLocalCapabilities();
1041    method @NonNull public java.util.List<android.bluetooth.BluetoothLeAudioCodecConfig> getInputCodecSelectableCapabilities();
1042    method @Nullable public android.bluetooth.BluetoothLeAudioCodecConfig getOutputCodecConfig();
1043    method @NonNull public java.util.List<android.bluetooth.BluetoothLeAudioCodecConfig> getOutputCodecLocalCapabilities();
1044    method @NonNull public java.util.List<android.bluetooth.BluetoothLeAudioCodecConfig> getOutputCodecSelectableCapabilities();
1045    method public boolean isInputCodecConfigSelectable(@Nullable android.bluetooth.BluetoothLeAudioCodecConfig);
1046    method public boolean isOutputCodecConfigSelectable(@Nullable android.bluetooth.BluetoothLeAudioCodecConfig);
1047    method public void writeToParcel(@NonNull android.os.Parcel, int);
1048    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothLeAudioCodecStatus> CREATOR;
1049    field public static final String EXTRA_LE_AUDIO_CODEC_STATUS = "android.bluetooth.extra.LE_AUDIO_CODEC_STATUS";
1050  }
1051
1052  public final class BluetoothManager {
1053    method public android.bluetooth.BluetoothAdapter getAdapter();
1054    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(int);
1055    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice, int);
1056    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int, int[]);
1057    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothGattServer openGattServer(android.content.Context, android.bluetooth.BluetoothGattServerCallback);
1058  }
1059
1060  public interface BluetoothProfile {
1061    method public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
1062    method public int getConnectionState(android.bluetooth.BluetoothDevice);
1063    method public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
1064    field public static final int A2DP = 2; // 0x2
1065    field public static final int CSIP_SET_COORDINATOR = 25; // 0x19
1066    field public static final String EXTRA_PREVIOUS_STATE = "android.bluetooth.profile.extra.PREVIOUS_STATE";
1067    field public static final String EXTRA_STATE = "android.bluetooth.profile.extra.STATE";
1068    field public static final int GATT = 7; // 0x7
1069    field public static final int GATT_SERVER = 8; // 0x8
1070    field public static final int HAP_CLIENT = 28; // 0x1c
1071    field public static final int HEADSET = 1; // 0x1
1072    field @Deprecated public static final int HEALTH = 3; // 0x3
1073    field public static final int HEARING_AID = 21; // 0x15
1074    field public static final int HID_DEVICE = 19; // 0x13
1075    field public static final int LE_AUDIO = 22; // 0x16
1076    field public static final int SAP = 10; // 0xa
1077    field public static final int STATE_CONNECTED = 2; // 0x2
1078    field public static final int STATE_CONNECTING = 1; // 0x1
1079    field public static final int STATE_DISCONNECTED = 0; // 0x0
1080    field public static final int STATE_DISCONNECTING = 3; // 0x3
1081  }
1082
1083  public static interface BluetoothProfile.ServiceListener {
1084    method public void onServiceConnected(int, android.bluetooth.BluetoothProfile);
1085    method public void onServiceDisconnected(int);
1086  }
1087
1088  public final class BluetoothServerSocket implements java.io.Closeable {
1089    method public android.bluetooth.BluetoothSocket accept() throws java.io.IOException;
1090    method public android.bluetooth.BluetoothSocket accept(int) throws java.io.IOException;
1091    method public void close() throws java.io.IOException;
1092    method public int getPsm();
1093  }
1094
1095  public final class BluetoothSocket implements java.io.Closeable {
1096    method public void close() throws java.io.IOException;
1097    method @FlaggedApi("com.android.bluetooth.flags.socket_settings_api") @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public void connect() throws java.io.IOException;
1098    method public int getConnectionType();
1099    method public java.io.InputStream getInputStream() throws java.io.IOException;
1100    method public int getMaxReceivePacketSize();
1101    method public int getMaxTransmitPacketSize();
1102    method public java.io.OutputStream getOutputStream() throws java.io.IOException;
1103    method public android.bluetooth.BluetoothDevice getRemoteDevice();
1104    method public boolean isConnected();
1105    field public static final int TYPE_L2CAP = 3; // 0x3
1106    field @FlaggedApi("com.android.bluetooth.flags.socket_settings_api") public static final int TYPE_LE = 4; // 0x4
1107    field public static final int TYPE_RFCOMM = 1; // 0x1
1108    field public static final int TYPE_SCO = 2; // 0x2
1109  }
1110
1111  public class BluetoothSocketException extends java.io.IOException {
1112    ctor public BluetoothSocketException(int, @NonNull String);
1113    ctor public BluetoothSocketException(int);
1114    method public int getErrorCode();
1115    field public static final int BLUETOOTH_OFF_FAILURE = 15; // 0xf
1116    field public static final int L2CAP_ACL_FAILURE = 2; // 0x2
1117    field public static final int L2CAP_CLIENT_SECURITY_FAILURE = 3; // 0x3
1118    field public static final int L2CAP_INSUFFICIENT_AUTHENTICATION = 4; // 0x4
1119    field public static final int L2CAP_INSUFFICIENT_AUTHORIZATION = 5; // 0x5
1120    field public static final int L2CAP_INSUFFICIENT_ENCRYPTION = 7; // 0x7
1121    field public static final int L2CAP_INSUFFICIENT_ENCRYPT_KEY_SIZE = 6; // 0x6
1122    field public static final int L2CAP_INVALID_PARAMETERS = 11; // 0xb
1123    field public static final int L2CAP_INVALID_SOURCE_CID = 8; // 0x8
1124    field public static final int L2CAP_NO_PSM_AVAILABLE = 13; // 0xd
1125    field public static final int L2CAP_NO_RESOURCES = 12; // 0xc
1126    field public static final int L2CAP_SOURCE_CID_ALREADY_ALLOCATED = 9; // 0x9
1127    field public static final int L2CAP_TIMEOUT = 14; // 0xe
1128    field public static final int L2CAP_UNACCEPTABLE_PARAMETERS = 10; // 0xa
1129    field public static final int L2CAP_UNKNOWN = 1; // 0x1
1130    field public static final int NULL_DEVICE = 19; // 0x13
1131    field public static final int RPC_FAILURE = 20; // 0x14
1132    field public static final int SOCKET_CLOSED = 17; // 0x11
1133    field public static final int SOCKET_CONNECTION_FAILURE = 18; // 0x12
1134    field public static final int SOCKET_MANAGER_FAILURE = 16; // 0x10
1135    field @FlaggedApi("com.android.bluetooth.flags.unix_file_socket_creation_failure") public static final int UNIX_FILE_SOCKET_CREATION_FAILURE = 21; // 0x15
1136    field public static final int UNSPECIFIED = 0; // 0x0
1137  }
1138
1139  @FlaggedApi("com.android.bluetooth.flags.socket_settings_api") public final class BluetoothSocketSettings {
1140    method @IntRange(from=128, to=255) public int getL2capPsm();
1141    method @Nullable public String getRfcommServiceName();
1142    method @Nullable public java.util.UUID getRfcommUuid();
1143    method public int getSocketType();
1144    method public boolean isAuthenticationRequired();
1145    method public boolean isEncryptionRequired();
1146  }
1147
1148  @FlaggedApi("com.android.bluetooth.flags.socket_settings_api") public static final class BluetoothSocketSettings.Builder {
1149    ctor public BluetoothSocketSettings.Builder();
1150    method @NonNull public android.bluetooth.BluetoothSocketSettings build();
1151    method @NonNull public android.bluetooth.BluetoothSocketSettings.Builder setAuthenticationRequired(boolean);
1152    method @NonNull public android.bluetooth.BluetoothSocketSettings.Builder setEncryptionRequired(boolean);
1153    method @NonNull public android.bluetooth.BluetoothSocketSettings.Builder setL2capPsm(@IntRange(from=128, to=255) int);
1154    method @NonNull public android.bluetooth.BluetoothSocketSettings.Builder setRfcommServiceName(@NonNull String);
1155    method @NonNull public android.bluetooth.BluetoothSocketSettings.Builder setRfcommUuid(@NonNull java.util.UUID);
1156    method @NonNull public android.bluetooth.BluetoothSocketSettings.Builder setSocketType(int);
1157  }
1158
1159  public final class BluetoothStatusCodes {
1160    field public static final int ERROR_BLUETOOTH_NOT_ALLOWED = 2; // 0x2
1161    field public static final int ERROR_BLUETOOTH_NOT_ENABLED = 1; // 0x1
1162    field public static final int ERROR_DEVICE_NOT_BONDED = 3; // 0x3
1163    field public static final int ERROR_GATT_WRITE_NOT_ALLOWED = 200; // 0xc8
1164    field public static final int ERROR_GATT_WRITE_REQUEST_BUSY = 201; // 0xc9
1165    field public static final int ERROR_MISSING_BLUETOOTH_CONNECT_PERMISSION = 6; // 0x6
1166    field public static final int ERROR_PROFILE_SERVICE_NOT_BOUND = 9; // 0x9
1167    field public static final int ERROR_UNKNOWN = 2147483647; // 0x7fffffff
1168    field public static final int FEATURE_NOT_CONFIGURED = 30; // 0x1e
1169    field public static final int FEATURE_NOT_SUPPORTED = 11; // 0xb
1170    field public static final int FEATURE_SUPPORTED = 10; // 0xa
1171    field public static final int SUCCESS = 0; // 0x0
1172  }
1173
1174}
1175
1176package android.bluetooth.le {
1177
1178  public abstract class AdvertiseCallback {
1179    ctor public AdvertiseCallback();
1180    method public void onStartFailure(int);
1181    method public void onStartSuccess(android.bluetooth.le.AdvertiseSettings);
1182    field public static final int ADVERTISE_FAILED_ALREADY_STARTED = 3; // 0x3
1183    field public static final int ADVERTISE_FAILED_DATA_TOO_LARGE = 1; // 0x1
1184    field public static final int ADVERTISE_FAILED_FEATURE_UNSUPPORTED = 5; // 0x5
1185    field public static final int ADVERTISE_FAILED_INTERNAL_ERROR = 4; // 0x4
1186    field public static final int ADVERTISE_FAILED_TOO_MANY_ADVERTISERS = 2; // 0x2
1187  }
1188
1189  public final class AdvertiseData implements android.os.Parcelable {
1190    method public int describeContents();
1191    method public boolean getIncludeDeviceName();
1192    method public boolean getIncludeTxPowerLevel();
1193    method public android.util.SparseArray<byte[]> getManufacturerSpecificData();
1194    method public java.util.Map<android.os.ParcelUuid,byte[]> getServiceData();
1195    method @NonNull public java.util.List<android.os.ParcelUuid> getServiceSolicitationUuids();
1196    method public java.util.List<android.os.ParcelUuid> getServiceUuids();
1197    method @NonNull public java.util.List<android.bluetooth.le.TransportDiscoveryData> getTransportDiscoveryData();
1198    method public void writeToParcel(android.os.Parcel, int);
1199    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.AdvertiseData> CREATOR;
1200  }
1201
1202  public static final class AdvertiseData.Builder {
1203    ctor public AdvertiseData.Builder();
1204    method public android.bluetooth.le.AdvertiseData.Builder addManufacturerData(int, byte[]);
1205    method public android.bluetooth.le.AdvertiseData.Builder addServiceData(android.os.ParcelUuid, byte[]);
1206    method @NonNull public android.bluetooth.le.AdvertiseData.Builder addServiceSolicitationUuid(@NonNull android.os.ParcelUuid);
1207    method public android.bluetooth.le.AdvertiseData.Builder addServiceUuid(android.os.ParcelUuid);
1208    method @NonNull public android.bluetooth.le.AdvertiseData.Builder addTransportDiscoveryData(@NonNull android.bluetooth.le.TransportDiscoveryData);
1209    method public android.bluetooth.le.AdvertiseData build();
1210    method public android.bluetooth.le.AdvertiseData.Builder setIncludeDeviceName(boolean);
1211    method public android.bluetooth.le.AdvertiseData.Builder setIncludeTxPowerLevel(boolean);
1212  }
1213
1214  public final class AdvertiseSettings implements android.os.Parcelable {
1215    method public int describeContents();
1216    method public int getMode();
1217    method public int getTimeout();
1218    method public int getTxPowerLevel();
1219    method public boolean isConnectable();
1220    method public boolean isDiscoverable();
1221    method public void writeToParcel(android.os.Parcel, int);
1222    field public static final int ADVERTISE_MODE_BALANCED = 1; // 0x1
1223    field public static final int ADVERTISE_MODE_LOW_LATENCY = 2; // 0x2
1224    field public static final int ADVERTISE_MODE_LOW_POWER = 0; // 0x0
1225    field public static final int ADVERTISE_TX_POWER_HIGH = 3; // 0x3
1226    field public static final int ADVERTISE_TX_POWER_LOW = 1; // 0x1
1227    field public static final int ADVERTISE_TX_POWER_MEDIUM = 2; // 0x2
1228    field public static final int ADVERTISE_TX_POWER_ULTRA_LOW = 0; // 0x0
1229    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.AdvertiseSettings> CREATOR;
1230  }
1231
1232  public static final class AdvertiseSettings.Builder {
1233    ctor public AdvertiseSettings.Builder();
1234    method public android.bluetooth.le.AdvertiseSettings build();
1235    method public android.bluetooth.le.AdvertiseSettings.Builder setAdvertiseMode(int);
1236    method public android.bluetooth.le.AdvertiseSettings.Builder setConnectable(boolean);
1237    method @NonNull public android.bluetooth.le.AdvertiseSettings.Builder setDiscoverable(boolean);
1238    method public android.bluetooth.le.AdvertiseSettings.Builder setTimeout(int);
1239    method public android.bluetooth.le.AdvertiseSettings.Builder setTxPowerLevel(int);
1240  }
1241
1242  public final class AdvertisingSet {
1243    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void enableAdvertising(boolean, int, int);
1244    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setAdvertisingData(android.bluetooth.le.AdvertiseData);
1245    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setAdvertisingParameters(android.bluetooth.le.AdvertisingSetParameters);
1246    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setPeriodicAdvertisingData(android.bluetooth.le.AdvertiseData);
1247    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setPeriodicAdvertisingEnabled(boolean);
1248    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setPeriodicAdvertisingParameters(android.bluetooth.le.PeriodicAdvertisingParameters);
1249    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setScanResponseData(android.bluetooth.le.AdvertiseData);
1250  }
1251
1252  public abstract class AdvertisingSetCallback {
1253    ctor public AdvertisingSetCallback();
1254    method public void onAdvertisingDataSet(android.bluetooth.le.AdvertisingSet, int);
1255    method public void onAdvertisingEnabled(android.bluetooth.le.AdvertisingSet, boolean, int);
1256    method public void onAdvertisingParametersUpdated(android.bluetooth.le.AdvertisingSet, int, int);
1257    method public void onAdvertisingSetStarted(android.bluetooth.le.AdvertisingSet, int, int);
1258    method public void onAdvertisingSetStopped(android.bluetooth.le.AdvertisingSet);
1259    method public void onPeriodicAdvertisingDataSet(android.bluetooth.le.AdvertisingSet, int);
1260    method public void onPeriodicAdvertisingEnabled(android.bluetooth.le.AdvertisingSet, boolean, int);
1261    method public void onPeriodicAdvertisingParametersUpdated(android.bluetooth.le.AdvertisingSet, int);
1262    method public void onScanResponseDataSet(android.bluetooth.le.AdvertisingSet, int);
1263    field public static final int ADVERTISE_FAILED_ALREADY_STARTED = 3; // 0x3
1264    field public static final int ADVERTISE_FAILED_DATA_TOO_LARGE = 1; // 0x1
1265    field public static final int ADVERTISE_FAILED_FEATURE_UNSUPPORTED = 5; // 0x5
1266    field public static final int ADVERTISE_FAILED_INTERNAL_ERROR = 4; // 0x4
1267    field public static final int ADVERTISE_FAILED_TOO_MANY_ADVERTISERS = 2; // 0x2
1268    field public static final int ADVERTISE_SUCCESS = 0; // 0x0
1269  }
1270
1271  public final class AdvertisingSetParameters implements android.os.Parcelable {
1272    method public int describeContents();
1273    method public int getInterval();
1274    method public int getPrimaryPhy();
1275    method public int getSecondaryPhy();
1276    method public int getTxPowerLevel();
1277    method public boolean includeTxPower();
1278    method public boolean isAnonymous();
1279    method public boolean isConnectable();
1280    method public boolean isDiscoverable();
1281    method public boolean isLegacy();
1282    method public boolean isScannable();
1283    method public void writeToParcel(android.os.Parcel, int);
1284    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.AdvertisingSetParameters> CREATOR;
1285    field public static final int INTERVAL_HIGH = 1600; // 0x640
1286    field public static final int INTERVAL_LOW = 160; // 0xa0
1287    field public static final int INTERVAL_MAX = 16777215; // 0xffffff
1288    field public static final int INTERVAL_MEDIUM = 400; // 0x190
1289    field public static final int INTERVAL_MIN = 160; // 0xa0
1290    field public static final int TX_POWER_HIGH = 1; // 0x1
1291    field public static final int TX_POWER_LOW = -15; // 0xfffffff1
1292    field public static final int TX_POWER_MAX = 1; // 0x1
1293    field public static final int TX_POWER_MEDIUM = -7; // 0xfffffff9
1294    field public static final int TX_POWER_MIN = -127; // 0xffffff81
1295    field public static final int TX_POWER_ULTRA_LOW = -21; // 0xffffffeb
1296  }
1297
1298  public static final class AdvertisingSetParameters.Builder {
1299    ctor public AdvertisingSetParameters.Builder();
1300    method public android.bluetooth.le.AdvertisingSetParameters build();
1301    method public android.bluetooth.le.AdvertisingSetParameters.Builder setAnonymous(boolean);
1302    method public android.bluetooth.le.AdvertisingSetParameters.Builder setConnectable(boolean);
1303    method @NonNull public android.bluetooth.le.AdvertisingSetParameters.Builder setDiscoverable(boolean);
1304    method public android.bluetooth.le.AdvertisingSetParameters.Builder setIncludeTxPower(boolean);
1305    method public android.bluetooth.le.AdvertisingSetParameters.Builder setInterval(int);
1306    method public android.bluetooth.le.AdvertisingSetParameters.Builder setLegacyMode(boolean);
1307    method public android.bluetooth.le.AdvertisingSetParameters.Builder setPrimaryPhy(int);
1308    method public android.bluetooth.le.AdvertisingSetParameters.Builder setScannable(boolean);
1309    method public android.bluetooth.le.AdvertisingSetParameters.Builder setSecondaryPhy(int);
1310    method public android.bluetooth.le.AdvertisingSetParameters.Builder setTxPowerLevel(int);
1311  }
1312
1313  public final class BluetoothLeAdvertiser {
1314    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public void startAdvertising(android.bluetooth.le.AdvertiseSettings, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseCallback);
1315    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public void startAdvertising(android.bluetooth.le.AdvertiseSettings, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseCallback);
1316    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertisingSetCallback);
1317    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertisingSetCallback, android.os.Handler);
1318    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, int, int, android.bluetooth.le.AdvertisingSetCallback);
1319    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true) public void startAdvertisingSet(android.bluetooth.le.AdvertisingSetParameters, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.PeriodicAdvertisingParameters, android.bluetooth.le.AdvertiseData, int, int, android.bluetooth.le.AdvertisingSetCallback, android.os.Handler);
1320    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void stopAdvertising(android.bluetooth.le.AdvertiseCallback);
1321    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void stopAdvertisingSet(android.bluetooth.le.AdvertisingSetCallback);
1322  }
1323
1324  public final class BluetoothLeScanner {
1325    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void flushPendingScanResults(android.bluetooth.le.ScanCallback);
1326    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void startScan(android.bluetooth.le.ScanCallback);
1327    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void startScan(java.util.List<android.bluetooth.le.ScanFilter>, android.bluetooth.le.ScanSettings, android.bluetooth.le.ScanCallback);
1328    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public int startScan(@Nullable java.util.List<android.bluetooth.le.ScanFilter>, @Nullable android.bluetooth.le.ScanSettings, @NonNull android.app.PendingIntent);
1329    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void stopScan(android.bluetooth.le.ScanCallback);
1330    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void stopScan(android.app.PendingIntent);
1331    field public static final String EXTRA_CALLBACK_TYPE = "android.bluetooth.le.extra.CALLBACK_TYPE";
1332    field public static final String EXTRA_ERROR_CODE = "android.bluetooth.le.extra.ERROR_CODE";
1333    field public static final String EXTRA_LIST_SCAN_RESULT = "android.bluetooth.le.extra.LIST_SCAN_RESULT";
1334  }
1335
1336  public final class PeriodicAdvertisingParameters implements android.os.Parcelable {
1337    method public int describeContents();
1338    method public boolean getIncludeTxPower();
1339    method public int getInterval();
1340    method public void writeToParcel(android.os.Parcel, int);
1341    field public static final android.os.Parcelable.Creator<android.bluetooth.le.PeriodicAdvertisingParameters> CREATOR;
1342  }
1343
1344  public static final class PeriodicAdvertisingParameters.Builder {
1345    ctor public PeriodicAdvertisingParameters.Builder();
1346    method public android.bluetooth.le.PeriodicAdvertisingParameters build();
1347    method public android.bluetooth.le.PeriodicAdvertisingParameters.Builder setIncludeTxPower(boolean);
1348    method public android.bluetooth.le.PeriodicAdvertisingParameters.Builder setInterval(int);
1349  }
1350
1351  public abstract class ScanCallback {
1352    ctor public ScanCallback();
1353    method public void onBatchScanResults(java.util.List<android.bluetooth.le.ScanResult>);
1354    method public void onScanFailed(int);
1355    method public void onScanResult(int, android.bluetooth.le.ScanResult);
1356    field public static final int SCAN_FAILED_ALREADY_STARTED = 1; // 0x1
1357    field public static final int SCAN_FAILED_APPLICATION_REGISTRATION_FAILED = 2; // 0x2
1358    field public static final int SCAN_FAILED_FEATURE_UNSUPPORTED = 4; // 0x4
1359    field public static final int SCAN_FAILED_INTERNAL_ERROR = 3; // 0x3
1360    field public static final int SCAN_FAILED_OUT_OF_HARDWARE_RESOURCES = 5; // 0x5
1361    field public static final int SCAN_FAILED_SCANNING_TOO_FREQUENTLY = 6; // 0x6
1362  }
1363
1364  public final class ScanFilter implements android.os.Parcelable {
1365    method public int describeContents();
1366    method @Nullable public byte[] getAdvertisingData();
1367    method @Nullable public byte[] getAdvertisingDataMask();
1368    method public int getAdvertisingDataType();
1369    method @Nullable public String getDeviceAddress();
1370    method @Nullable public String getDeviceName();
1371    method @Nullable public byte[] getManufacturerData();
1372    method @Nullable public byte[] getManufacturerDataMask();
1373    method public int getManufacturerId();
1374    method @Nullable public byte[] getServiceData();
1375    method @Nullable public byte[] getServiceDataMask();
1376    method @Nullable public android.os.ParcelUuid getServiceDataUuid();
1377    method @Nullable public android.os.ParcelUuid getServiceSolicitationUuid();
1378    method @Nullable public android.os.ParcelUuid getServiceSolicitationUuidMask();
1379    method @Nullable public android.os.ParcelUuid getServiceUuid();
1380    method @Nullable public android.os.ParcelUuid getServiceUuidMask();
1381    method public boolean matches(android.bluetooth.le.ScanResult);
1382    method public void writeToParcel(android.os.Parcel, int);
1383    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ScanFilter> CREATOR;
1384  }
1385
1386  public static final class ScanFilter.Builder {
1387    ctor public ScanFilter.Builder();
1388    method public android.bluetooth.le.ScanFilter build();
1389    method @NonNull public android.bluetooth.le.ScanFilter.Builder setAdvertisingDataType(int);
1390    method @NonNull public android.bluetooth.le.ScanFilter.Builder setAdvertisingDataTypeWithData(int, @NonNull byte[], @NonNull byte[]);
1391    method public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(String);
1392    method public android.bluetooth.le.ScanFilter.Builder setDeviceName(String);
1393    method public android.bluetooth.le.ScanFilter.Builder setManufacturerData(int, byte[]);
1394    method public android.bluetooth.le.ScanFilter.Builder setManufacturerData(int, byte[], byte[]);
1395    method public android.bluetooth.le.ScanFilter.Builder setServiceData(android.os.ParcelUuid, byte[]);
1396    method public android.bluetooth.le.ScanFilter.Builder setServiceData(android.os.ParcelUuid, byte[], byte[]);
1397    method @NonNull public android.bluetooth.le.ScanFilter.Builder setServiceSolicitationUuid(@Nullable android.os.ParcelUuid);
1398    method @NonNull public android.bluetooth.le.ScanFilter.Builder setServiceSolicitationUuid(@Nullable android.os.ParcelUuid, @Nullable android.os.ParcelUuid);
1399    method public android.bluetooth.le.ScanFilter.Builder setServiceUuid(android.os.ParcelUuid);
1400    method public android.bluetooth.le.ScanFilter.Builder setServiceUuid(android.os.ParcelUuid, android.os.ParcelUuid);
1401  }
1402
1403  public final class ScanRecord {
1404    method public int getAdvertiseFlags();
1405    method @NonNull public java.util.Map<java.lang.Integer,byte[]> getAdvertisingDataMap();
1406    method public byte[] getBytes();
1407    method @Nullable public String getDeviceName();
1408    method public android.util.SparseArray<byte[]> getManufacturerSpecificData();
1409    method @Nullable public byte[] getManufacturerSpecificData(int);
1410    method public java.util.Map<android.os.ParcelUuid,byte[]> getServiceData();
1411    method @Nullable public byte[] getServiceData(android.os.ParcelUuid);
1412    method @NonNull public java.util.List<android.os.ParcelUuid> getServiceSolicitationUuids();
1413    method public java.util.List<android.os.ParcelUuid> getServiceUuids();
1414    method public int getTxPowerLevel();
1415    field public static final int DATA_TYPE_3D_INFORMATION_DATA = 61; // 0x3d
1416    field public static final int DATA_TYPE_ADVERTISING_INTERVAL = 26; // 0x1a
1417    field public static final int DATA_TYPE_ADVERTISING_INTERVAL_LONG = 47; // 0x2f
1418    field public static final int DATA_TYPE_APPEARANCE = 25; // 0x19
1419    field public static final int DATA_TYPE_BIG_INFO = 44; // 0x2c
1420    field public static final int DATA_TYPE_BROADCAST_CODE = 45; // 0x2d
1421    field public static final int DATA_TYPE_CHANNEL_MAP_UPDATE_INDICATION = 40; // 0x28
1422    field public static final int DATA_TYPE_CLASS_OF_DEVICE = 13; // 0xd
1423    field public static final int DATA_TYPE_DEVICE_ID = 16; // 0x10
1424    field public static final int DATA_TYPE_FLAGS = 1; // 0x1
1425    field public static final int DATA_TYPE_INDOOR_POSITIONING = 37; // 0x25
1426    field public static final int DATA_TYPE_LE_BLUETOOTH_DEVICE_ADDRESS = 27; // 0x1b
1427    field public static final int DATA_TYPE_LE_ROLE = 28; // 0x1c
1428    field public static final int DATA_TYPE_LE_SECURE_CONNECTIONS_CONFIRMATION_VALUE = 34; // 0x22
1429    field public static final int DATA_TYPE_LE_SECURE_CONNECTIONS_RANDOM_VALUE = 35; // 0x23
1430    field public static final int DATA_TYPE_LE_SUPPORTED_FEATURES = 39; // 0x27
1431    field public static final int DATA_TYPE_LOCAL_NAME_COMPLETE = 9; // 0x9
1432    field public static final int DATA_TYPE_LOCAL_NAME_SHORT = 8; // 0x8
1433    field public static final int DATA_TYPE_MANUFACTURER_SPECIFIC_DATA = 255; // 0xff
1434    field public static final int DATA_TYPE_MESH_BEACON = 43; // 0x2b
1435    field public static final int DATA_TYPE_MESH_MESSAGE = 42; // 0x2a
1436    field public static final int DATA_TYPE_NONE = -1; // 0xffffffff
1437    field public static final int DATA_TYPE_PB_ADV = 41; // 0x29
1438    field public static final int DATA_TYPE_PUBLIC_TARGET_ADDRESS = 23; // 0x17
1439    field public static final int DATA_TYPE_RANDOM_TARGET_ADDRESS = 24; // 0x18
1440    field public static final int DATA_TYPE_RESOLVABLE_SET_IDENTIFIER = 46; // 0x2e
1441    field public static final int DATA_TYPE_SECURITY_MANAGER_OUT_OF_BAND_FLAGS = 17; // 0x11
1442    field public static final int DATA_TYPE_SERVICE_DATA_128_BIT = 33; // 0x21
1443    field public static final int DATA_TYPE_SERVICE_DATA_16_BIT = 22; // 0x16
1444    field public static final int DATA_TYPE_SERVICE_DATA_32_BIT = 32; // 0x20
1445    field public static final int DATA_TYPE_SERVICE_SOLICITATION_UUIDS_128_BIT = 21; // 0x15
1446    field public static final int DATA_TYPE_SERVICE_SOLICITATION_UUIDS_16_BIT = 20; // 0x14
1447    field public static final int DATA_TYPE_SERVICE_SOLICITATION_UUIDS_32_BIT = 31; // 0x1f
1448    field public static final int DATA_TYPE_SERVICE_UUIDS_128_BIT_COMPLETE = 7; // 0x7
1449    field public static final int DATA_TYPE_SERVICE_UUIDS_128_BIT_PARTIAL = 6; // 0x6
1450    field public static final int DATA_TYPE_SERVICE_UUIDS_16_BIT_COMPLETE = 3; // 0x3
1451    field public static final int DATA_TYPE_SERVICE_UUIDS_16_BIT_PARTIAL = 2; // 0x2
1452    field public static final int DATA_TYPE_SERVICE_UUIDS_32_BIT_COMPLETE = 5; // 0x5
1453    field public static final int DATA_TYPE_SERVICE_UUIDS_32_BIT_PARTIAL = 4; // 0x4
1454    field public static final int DATA_TYPE_SIMPLE_PAIRING_HASH_C = 14; // 0xe
1455    field public static final int DATA_TYPE_SIMPLE_PAIRING_HASH_C_256 = 29; // 0x1d
1456    field public static final int DATA_TYPE_SIMPLE_PAIRING_RANDOMIZER_R = 15; // 0xf
1457    field public static final int DATA_TYPE_SIMPLE_PAIRING_RANDOMIZER_R_256 = 30; // 0x1e
1458    field public static final int DATA_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE = 18; // 0x12
1459    field public static final int DATA_TYPE_TRANSPORT_DISCOVERY_DATA = 38; // 0x26
1460    field public static final int DATA_TYPE_TX_POWER_LEVEL = 10; // 0xa
1461    field public static final int DATA_TYPE_URI = 36; // 0x24
1462  }
1463
1464  public final class ScanResult implements android.os.Parcelable {
1465    ctor @Deprecated public ScanResult(android.bluetooth.BluetoothDevice, android.bluetooth.le.ScanRecord, int, long);
1466    ctor public ScanResult(android.bluetooth.BluetoothDevice, int, int, int, int, int, int, int, android.bluetooth.le.ScanRecord, long);
1467    method public int describeContents();
1468    method public int getAdvertisingSid();
1469    method public int getDataStatus();
1470    method public android.bluetooth.BluetoothDevice getDevice();
1471    method public int getPeriodicAdvertisingInterval();
1472    method public int getPrimaryPhy();
1473    method public int getRssi();
1474    method @Nullable public android.bluetooth.le.ScanRecord getScanRecord();
1475    method public int getSecondaryPhy();
1476    method public long getTimestampNanos();
1477    method public int getTxPower();
1478    method public boolean isConnectable();
1479    method public boolean isLegacy();
1480    method public void writeToParcel(android.os.Parcel, int);
1481    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ScanResult> CREATOR;
1482    field public static final int DATA_COMPLETE = 0; // 0x0
1483    field public static final int DATA_TRUNCATED = 2; // 0x2
1484    field public static final int PERIODIC_INTERVAL_NOT_PRESENT = 0; // 0x0
1485    field public static final int PHY_UNUSED = 0; // 0x0
1486    field public static final int SID_NOT_PRESENT = 255; // 0xff
1487    field public static final int TX_POWER_NOT_PRESENT = 127; // 0x7f
1488  }
1489
1490  public final class ScanSettings implements android.os.Parcelable {
1491    method public int describeContents();
1492    method public int getCallbackType();
1493    method public boolean getLegacy();
1494    method public int getPhy();
1495    method public long getReportDelayMillis();
1496    method public int getScanMode();
1497    method public int getScanResultType();
1498    method public void writeToParcel(android.os.Parcel, int);
1499    field public static final long AUTO_BATCH_MIN_REPORT_DELAY_MILLIS = 600000L; // 0x927c0L
1500    field public static final int CALLBACK_TYPE_ALL_MATCHES = 1; // 0x1
1501    field public static final int CALLBACK_TYPE_ALL_MATCHES_AUTO_BATCH = 8; // 0x8
1502    field public static final int CALLBACK_TYPE_FIRST_MATCH = 2; // 0x2
1503    field public static final int CALLBACK_TYPE_MATCH_LOST = 4; // 0x4
1504    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ScanSettings> CREATOR;
1505    field public static final int MATCH_MODE_AGGRESSIVE = 1; // 0x1
1506    field public static final int MATCH_MODE_STICKY = 2; // 0x2
1507    field public static final int MATCH_NUM_FEW_ADVERTISEMENT = 2; // 0x2
1508    field public static final int MATCH_NUM_MAX_ADVERTISEMENT = 3; // 0x3
1509    field public static final int MATCH_NUM_ONE_ADVERTISEMENT = 1; // 0x1
1510    field public static final int PHY_LE_ALL_SUPPORTED = 255; // 0xff
1511    field public static final int SCAN_MODE_BALANCED = 1; // 0x1
1512    field public static final int SCAN_MODE_LOW_LATENCY = 2; // 0x2
1513    field public static final int SCAN_MODE_LOW_POWER = 0; // 0x0
1514    field public static final int SCAN_MODE_OPPORTUNISTIC = -1; // 0xffffffff
1515  }
1516
1517  public static final class ScanSettings.Builder {
1518    ctor public ScanSettings.Builder();
1519    method public android.bluetooth.le.ScanSettings build();
1520    method public android.bluetooth.le.ScanSettings.Builder setCallbackType(int);
1521    method public android.bluetooth.le.ScanSettings.Builder setLegacy(boolean);
1522    method public android.bluetooth.le.ScanSettings.Builder setMatchMode(int);
1523    method public android.bluetooth.le.ScanSettings.Builder setNumOfMatches(int);
1524    method public android.bluetooth.le.ScanSettings.Builder setPhy(int);
1525    method public android.bluetooth.le.ScanSettings.Builder setReportDelay(long);
1526    method public android.bluetooth.le.ScanSettings.Builder setScanMode(int);
1527  }
1528
1529  public final class TransportBlock implements android.os.Parcelable {
1530    ctor public TransportBlock(int, int, int, @Nullable byte[]);
1531    method public int describeContents();
1532    method public int getOrgId();
1533    method public int getTdsFlags();
1534    method @Nullable public byte[] getTransportData();
1535    method public int getTransportDataLength();
1536    method @Nullable public byte[] toByteArray();
1537    method public int totalBytes();
1538    method public void writeToParcel(@NonNull android.os.Parcel, int);
1539    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.TransportBlock> CREATOR;
1540  }
1541
1542  public final class TransportDiscoveryData implements android.os.Parcelable {
1543    ctor public TransportDiscoveryData(int, @NonNull java.util.List<android.bluetooth.le.TransportBlock>);
1544    ctor public TransportDiscoveryData(@NonNull byte[]);
1545    method public int describeContents();
1546    method @NonNull public java.util.List<android.bluetooth.le.TransportBlock> getTransportBlocks();
1547    method public int getTransportDataType();
1548    method @Nullable public byte[] toByteArray();
1549    method public int totalBytes();
1550    method public void writeToParcel(@NonNull android.os.Parcel, int);
1551    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.TransportDiscoveryData> CREATOR;
1552  }
1553
1554}
1555
1556