xref: /aosp_15_r20/prebuilts/sdk/32/public/api/framework-bluetooth.txt (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1// Signature format: 2.0
2package android.bluetooth {
3
4  public final class BluetoothA2dp implements android.bluetooth.BluetoothProfile {
5    method 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 @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isA2dpPlaying(android.bluetooth.BluetoothDevice);
10    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp.profile.action.CONNECTION_STATE_CHANGED";
11    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_PLAYING_STATE_CHANGED = "android.bluetooth.a2dp.profile.action.PLAYING_STATE_CHANGED";
12    field public static final int STATE_NOT_PLAYING = 11; // 0xb
13    field public static final int STATE_PLAYING = 10; // 0xa
14  }
15
16  public final class BluetoothAdapter {
17    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public boolean cancelDiscovery();
18    method public static boolean checkBluetoothAddress(String);
19    method public void closeProfileProxy(int, android.bluetooth.BluetoothProfile);
20    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disable();
21    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean enable();
22    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, "android.permission.LOCAL_MAC_ADDRESS"}) public String getAddress();
23    method public android.bluetooth.le.BluetoothLeAdvertiser getBluetoothLeAdvertiser();
24    method public android.bluetooth.le.BluetoothLeScanner getBluetoothLeScanner();
25    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.Set<android.bluetooth.BluetoothDevice> getBondedDevices();
26    method @Deprecated public static android.bluetooth.BluetoothAdapter getDefaultAdapter();
27    method public int getLeMaximumAdvertisingDataLength();
28    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public String getName();
29    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getProfileConnectionState(int);
30    method public boolean getProfileProxy(android.content.Context, android.bluetooth.BluetoothProfile.ServiceListener, int);
31    method public android.bluetooth.BluetoothDevice getRemoteDevice(String);
32    method public android.bluetooth.BluetoothDevice getRemoteDevice(byte[]);
33    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public int getScanMode();
34    method public int getState();
35    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public boolean isDiscovering();
36    method public boolean isEnabled();
37    method public boolean isLe2MPhySupported();
38    method public boolean isLeCodedPhySupported();
39    method public boolean isLeExtendedAdvertisingSupported();
40    method public boolean isLePeriodicAdvertisingSupported();
41    method public boolean isMultipleAdvertisementSupported();
42    method public boolean isOffloadedFilteringSupported();
43    method public boolean isOffloadedScanBatchingSupported();
44    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothServerSocket listenUsingInsecureL2capChannel() throws java.io.IOException;
45    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothServerSocket listenUsingInsecureRfcommWithServiceRecord(String, java.util.UUID) throws java.io.IOException;
46    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothServerSocket listenUsingL2capChannel() throws java.io.IOException;
47    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothServerSocket listenUsingRfcommWithServiceRecord(String, java.util.UUID) throws java.io.IOException;
48    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean setName(String);
49    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public boolean startDiscovery();
50    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public boolean startLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback);
51    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public boolean startLeScan(java.util.UUID[], android.bluetooth.BluetoothAdapter.LeScanCallback);
52    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void stopLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback);
53    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED";
54    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public static final String ACTION_DISCOVERY_FINISHED = "android.bluetooth.adapter.action.DISCOVERY_FINISHED";
55    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public static final String ACTION_DISCOVERY_STARTED = "android.bluetooth.adapter.action.DISCOVERY_STARTED";
56    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_LOCAL_NAME_CHANGED = "android.bluetooth.adapter.action.LOCAL_NAME_CHANGED";
57    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public static final String ACTION_REQUEST_DISCOVERABLE = "android.bluetooth.adapter.action.REQUEST_DISCOVERABLE";
58    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_REQUEST_ENABLE = "android.bluetooth.adapter.action.REQUEST_ENABLE";
59    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public static final String ACTION_SCAN_MODE_CHANGED = "android.bluetooth.adapter.action.SCAN_MODE_CHANGED";
60    field public static final String ACTION_STATE_CHANGED = "android.bluetooth.adapter.action.STATE_CHANGED";
61    field public static final int ERROR = -2147483648; // 0x80000000
62    field public static final String EXTRA_CONNECTION_STATE = "android.bluetooth.adapter.extra.CONNECTION_STATE";
63    field public static final String EXTRA_DISCOVERABLE_DURATION = "android.bluetooth.adapter.extra.DISCOVERABLE_DURATION";
64    field public static final String EXTRA_LOCAL_NAME = "android.bluetooth.adapter.extra.LOCAL_NAME";
65    field public static final String EXTRA_PREVIOUS_CONNECTION_STATE = "android.bluetooth.adapter.extra.PREVIOUS_CONNECTION_STATE";
66    field public static final String EXTRA_PREVIOUS_SCAN_MODE = "android.bluetooth.adapter.extra.PREVIOUS_SCAN_MODE";
67    field public static final String EXTRA_PREVIOUS_STATE = "android.bluetooth.adapter.extra.PREVIOUS_STATE";
68    field public static final String EXTRA_SCAN_MODE = "android.bluetooth.adapter.extra.SCAN_MODE";
69    field public static final String EXTRA_STATE = "android.bluetooth.adapter.extra.STATE";
70    field public static final int SCAN_MODE_CONNECTABLE = 21; // 0x15
71    field public static final int SCAN_MODE_CONNECTABLE_DISCOVERABLE = 23; // 0x17
72    field public static final int SCAN_MODE_NONE = 20; // 0x14
73    field public static final int STATE_CONNECTED = 2; // 0x2
74    field public static final int STATE_CONNECTING = 1; // 0x1
75    field public static final int STATE_DISCONNECTED = 0; // 0x0
76    field public static final int STATE_DISCONNECTING = 3; // 0x3
77    field public static final int STATE_OFF = 10; // 0xa
78    field public static final int STATE_ON = 12; // 0xc
79    field public static final int STATE_TURNING_OFF = 13; // 0xd
80    field public static final int STATE_TURNING_ON = 11; // 0xb
81  }
82
83  public static interface BluetoothAdapter.LeScanCallback {
84    method public void onLeScan(android.bluetooth.BluetoothDevice, int, byte[]);
85  }
86
87  public class BluetoothAssignedNumbers {
88    field public static final int AAMP_OF_AMERICA = 190; // 0xbe
89    field public static final int ACCEL_SEMICONDUCTOR = 74; // 0x4a
90    field public static final int ACE_SENSOR = 188; // 0xbc
91    field public static final int ADIDAS = 195; // 0xc3
92    field public static final int ADVANCED_PANMOBIL_SYSTEMS = 145; // 0x91
93    field public static final int AIROHA_TECHNOLOGY = 148; // 0x94
94    field public static final int ALCATEL = 36; // 0x24
95    field public static final int ALPWISE = 154; // 0x9a
96    field public static final int AMICCOM_ELECTRONICS = 192; // 0xc0
97    field public static final int APLIX = 189; // 0xbd
98    field public static final int APPLE = 76; // 0x4c
99    field public static final int APT_LICENSING = 79; // 0x4f
100    field public static final int ARCHOS = 207; // 0xcf
101    field public static final int ARP_DEVICES = 168; // 0xa8
102    field public static final int ATHEROS_COMMUNICATIONS = 69; // 0x45
103    field public static final int ATMEL = 19; // 0x13
104    field public static final int AUSTCO_COMMUNICATION_SYSTEMS = 213; // 0xd5
105    field public static final int AUTONET_MOBILE = 127; // 0x7f
106    field public static final int AVAGO = 78; // 0x4e
107    field public static final int AVM_BERLIN = 31; // 0x1f
108    field public static final int A_AND_D_ENGINEERING = 105; // 0x69
109    field public static final int A_AND_R_CAMBRIDGE = 124; // 0x7c
110    field public static final int BANDSPEED = 32; // 0x20
111    field public static final int BAND_XI_INTERNATIONAL = 100; // 0x64
112    field public static final int BDE_TECHNOLOGY = 180; // 0xb4
113    field public static final int BEATS_ELECTRONICS = 204; // 0xcc
114    field public static final int BEAUTIFUL_ENTERPRISE = 108; // 0x6c
115    field public static final int BEKEY = 178; // 0xb2
116    field public static final int BELKIN_INTERNATIONAL = 92; // 0x5c
117    field public static final int BINAURIC = 203; // 0xcb
118    field public static final int BIOSENTRONICS = 219; // 0xdb
119    field public static final int BLUEGIGA = 71; // 0x47
120    field public static final int BLUERADIOS = 133; // 0x85
121    field public static final int BLUETOOTH_SIG = 63; // 0x3f
122    field public static final int BLUETREK_TECHNOLOGIES = 151; // 0x97
123    field public static final int BOSE = 158; // 0x9e
124    field public static final int BRIARTEK = 109; // 0x6d
125    field public static final int BROADCOM = 15; // 0xf
126    field public static final int CAEN_RFID = 170; // 0xaa
127    field public static final int CAMBRIDGE_SILICON_RADIO = 10; // 0xa
128    field public static final int CATC = 52; // 0x34
129    field public static final int CINETIX = 175; // 0xaf
130    field public static final int CLARINOX_TECHNOLOGIES = 179; // 0xb3
131    field public static final int COLORFY = 156; // 0x9c
132    field public static final int COMMIL = 51; // 0x33
133    field public static final int CONEXANT_SYSTEMS = 28; // 0x1c
134    field public static final int CONNECTBLUE = 113; // 0x71
135    field public static final int CONTINENTAL_AUTOMOTIVE = 75; // 0x4b
136    field public static final int CONWISE_TECHNOLOGY = 66; // 0x42
137    field public static final int CREATIVE_TECHNOLOGY = 118; // 0x76
138    field public static final int C_TECHNOLOGIES = 38; // 0x26
139    field public static final int DANLERS = 225; // 0xe1
140    field public static final int DELORME_PUBLISHING_COMPANY = 128; // 0x80
141    field public static final int DEXCOM = 208; // 0xd0
142    field public static final int DIALOG_SEMICONDUCTOR = 210; // 0xd2
143    field public static final int DIGIANSWER = 12; // 0xc
144    field public static final int ECLIPSE = 53; // 0x35
145    field public static final int ECOTEST = 136; // 0x88
146    field public static final int ELGATO_SYSTEMS = 206; // 0xce
147    field public static final int EM_MICROELECTRONIC_MARIN = 90; // 0x5a
148    field public static final int EQUINOX_AG = 134; // 0x86
149    field public static final int ERICSSON_TECHNOLOGY = 0; // 0x0
150    field public static final int EVLUMA = 201; // 0xc9
151    field public static final int FREE2MOVE = 83; // 0x53
152    field public static final int FUNAI_ELECTRIC = 144; // 0x90
153    field public static final int GARMIN_INTERNATIONAL = 135; // 0x87
154    field public static final int GCT_SEMICONDUCTOR = 45; // 0x2d
155    field public static final int GELO = 200; // 0xc8
156    field public static final int GENEQ = 194; // 0xc2
157    field public static final int GENERAL_MOTORS = 104; // 0x68
158    field public static final int GENNUM = 59; // 0x3b
159    field public static final int GEOFORCE = 157; // 0x9d
160    field public static final int GIBSON_GUITARS = 98; // 0x62
161    field public static final int GN_NETCOM = 103; // 0x67
162    field public static final int GN_RESOUND = 137; // 0x89
163    field public static final int GOOGLE = 224; // 0xe0
164    field public static final int GREEN_THROTTLE_GAMES = 172; // 0xac
165    field public static final int GROUP_SENSE = 115; // 0x73
166    field public static final int HANLYNN_TECHNOLOGIES = 123; // 0x7b
167    field public static final int HARMAN_INTERNATIONAL = 87; // 0x57
168    field public static final int HEWLETT_PACKARD = 101; // 0x65
169    field public static final int HITACHI = 41; // 0x29
170    field public static final int HOSIDEN = 221; // 0xdd
171    field public static final int IBM = 3; // 0x3
172    field public static final int INFINEON_TECHNOLOGIES = 9; // 0x9
173    field public static final int INGENIEUR_SYSTEMGRUPPE_ZAHN = 171; // 0xab
174    field public static final int INTEGRATED_SILICON_SOLUTION = 65; // 0x41
175    field public static final int INTEGRATED_SYSTEM_SOLUTION = 57; // 0x39
176    field public static final int INTEL = 2; // 0x2
177    field public static final int INVENTEL = 30; // 0x1e
178    field public static final int IPEXTREME = 61; // 0x3d
179    field public static final int I_TECH_DYNAMIC_GLOBAL_DISTRIBUTION = 153; // 0x99
180    field public static final int JAWBONE = 138; // 0x8a
181    field public static final int JIANGSU_TOPPOWER_AUTOMOTIVE_ELECTRONICS = 155; // 0x9b
182    field public static final int JOHNSON_CONTROLS = 185; // 0xb9
183    field public static final int J_AND_M = 82; // 0x52
184    field public static final int KAWANTECH = 212; // 0xd4
185    field public static final int KC_TECHNOLOGY = 22; // 0x16
186    field public static final int KENSINGTON_COMPUTER_PRODUCTS_GROUP = 160; // 0xa0
187    field public static final int LAIRD_TECHNOLOGIES = 119; // 0x77
188    field public static final int LESSWIRE = 121; // 0x79
189    field public static final int LG_ELECTRONICS = 196; // 0xc4
190    field public static final int LINAK = 164; // 0xa4
191    field public static final int LUCENT = 7; // 0x7
192    field public static final int LUDUS_HELSINKI = 132; // 0x84
193    field public static final int MACRONIX = 44; // 0x2c
194    field public static final int MAGNETI_MARELLI = 169; // 0xa9
195    field public static final int MANSELLA = 33; // 0x21
196    field public static final int MARVELL = 72; // 0x48
197    field public static final int MATSUSHITA_ELECTRIC = 58; // 0x3a
198    field public static final int MC10 = 202; // 0xca
199    field public static final int MEDIATEK = 70; // 0x46
200    field public static final int MESO_INTERNATIONAL = 182; // 0xb6
201    field public static final int META_WATCH = 163; // 0xa3
202    field public static final int MEWTEL_TECHNOLOGY = 47; // 0x2f
203    field public static final int MICOMMAND = 99; // 0x63
204    field public static final int MICROCHIP_TECHNOLOGY = 205; // 0xcd
205    field public static final int MICROSOFT = 6; // 0x6
206    field public static final int MINDTREE = 106; // 0x6a
207    field public static final int MISFIT_WEARABLES = 223; // 0xdf
208    field public static final int MITEL_SEMICONDUCTOR = 16; // 0x10
209    field public static final int MITSUBISHI_ELECTRIC = 20; // 0x14
210    field public static final int MOBILIAN_CORPORATION = 55; // 0x37
211    field public static final int MONSTER = 112; // 0x70
212    field public static final int MOTOROLA = 8; // 0x8
213    field public static final int MSTAR_SEMICONDUCTOR = 122; // 0x7a
214    field public static final int MUZIK = 222; // 0xde
215    field public static final int NEC = 34; // 0x22
216    field public static final int NEC_LIGHTING = 149; // 0x95
217    field public static final int NEWLOGIC = 23; // 0x17
218    field public static final int NIKE = 120; // 0x78
219    field public static final int NINE_SOLUTIONS = 102; // 0x66
220    field public static final int NOKIA_MOBILE_PHONES = 1; // 0x1
221    field public static final int NORDIC_SEMICONDUCTOR = 89; // 0x59
222    field public static final int NORWOOD_SYSTEMS = 46; // 0x2e
223    field public static final int ODM_TECHNOLOGY = 150; // 0x96
224    field public static final int OMEGAWAVE = 174; // 0xae
225    field public static final int ONSET_COMPUTER = 197; // 0xc5
226    field public static final int OPEN_INTERFACE = 39; // 0x27
227    field public static final int OTL_DYNAMICS = 165; // 0xa5
228    field public static final int PANDA_OCEAN = 166; // 0xa6
229    field public static final int PARROT = 67; // 0x43
230    field public static final int PARTHUS_TECHNOLOGIES = 14; // 0xe
231    field public static final int PASSIF_SEMICONDUCTOR = 176; // 0xb0
232    field public static final int PETER_SYSTEMTECHNIK = 173; // 0xad
233    field public static final int PHILIPS_SEMICONDUCTORS = 37; // 0x25
234    field public static final int PLANTRONICS = 85; // 0x55
235    field public static final int POLAR_ELECTRO = 107; // 0x6b
236    field public static final int POLAR_ELECTRO_EUROPE = 209; // 0xd1
237    field public static final int PROCTER_AND_GAMBLE = 220; // 0xdc
238    field public static final int QUALCOMM = 29; // 0x1d
239    field public static final int QUALCOMM_CONNECTED_EXPERIENCES = 216; // 0xd8
240    field public static final int QUALCOMM_INNOVATION_CENTER = 184; // 0xb8
241    field public static final int QUALCOMM_LABS = 140; // 0x8c
242    field public static final int QUALCOMM_TECHNOLOGIES = 215; // 0xd7
243    field public static final int QUINTIC = 142; // 0x8e
244    field public static final int QUUPPA = 199; // 0xc7
245    field public static final int RALINK_TECHNOLOGY = 91; // 0x5b
246    field public static final int RDA_MICROELECTRONICS = 97; // 0x61
247    field public static final int REALTEK_SEMICONDUCTOR = 93; // 0x5d
248    field public static final int RED_M = 50; // 0x32
249    field public static final int RENESAS_TECHNOLOGY = 54; // 0x36
250    field public static final int RESEARCH_IN_MOTION = 60; // 0x3c
251    field public static final int RF_MICRO_DEVICES = 40; // 0x28
252    field public static final int RIVIERAWAVES = 96; // 0x60
253    field public static final int ROHDE_AND_SCHWARZ = 25; // 0x19
254    field public static final int RTX_TELECOM = 21; // 0x15
255    field public static final int SAMSUNG_ELECTRONICS = 117; // 0x75
256    field public static final int SARIS_CYCLING_GROUP = 177; // 0xb1
257    field public static final int SEERS_TECHNOLOGY = 125; // 0x7d
258    field public static final int SEIKO_EPSON = 64; // 0x40
259    field public static final int SELFLY = 198; // 0xc6
260    field public static final int SEMILINK = 226; // 0xe2
261    field public static final int SENNHEISER_COMMUNICATIONS = 130; // 0x82
262    field public static final int SHANGHAI_SUPER_SMART_ELECTRONICS = 114; // 0x72
263    field public static final int SHENZHEN_EXCELSECU_DATA_TECHNOLOGY = 193; // 0xc1
264    field public static final int SIGNIA_TECHNOLOGIES = 27; // 0x1b
265    field public static final int SILICON_WAVE = 11; // 0xb
266    field public static final int SIRF_TECHNOLOGY = 80; // 0x50
267    field public static final int SOCKET_MOBILE = 68; // 0x44
268    field public static final int SONY_ERICSSON = 86; // 0x56
269    field public static final int SOUND_ID = 111; // 0x6f
270    field public static final int SPORTS_TRACKING_TECHNOLOGIES = 126; // 0x7e
271    field public static final int SR_MEDIZINELEKTRONIK = 161; // 0xa1
272    field public static final int STACCATO_COMMUNICATIONS = 77; // 0x4d
273    field public static final int STALMART_TECHNOLOGY = 191; // 0xbf
274    field public static final int STARKEY_LABORATORIES = 186; // 0xba
275    field public static final int STOLLMAN_E_PLUS_V = 143; // 0x8f
276    field public static final int STONESTREET_ONE = 94; // 0x5e
277    field public static final int ST_MICROELECTRONICS = 48; // 0x30
278    field public static final int SUMMIT_DATA_COMMUNICATIONS = 110; // 0x6e
279    field public static final int SUUNTO = 159; // 0x9f
280    field public static final int SWIRL_NETWORKS = 181; // 0xb5
281    field public static final int SYMBOL_TECHNOLOGIES = 42; // 0x2a
282    field public static final int SYNOPSYS = 49; // 0x31
283    field public static final int SYSTEMS_AND_CHIPS = 62; // 0x3e
284    field public static final int S_POWER_ELECTRONICS = 187; // 0xbb
285    field public static final int TAIXINGBANG_TECHNOLOGY = 211; // 0xd3
286    field public static final int TENOVIS = 43; // 0x2b
287    field public static final int TERAX = 56; // 0x38
288    field public static final int TEXAS_INSTRUMENTS = 13; // 0xd
289    field public static final int THINKOPTICS = 146; // 0x92
290    field public static final int THREECOM = 5; // 0x5
291    field public static final int THREE_DIJOY = 84; // 0x54
292    field public static final int THREE_DSP = 73; // 0x49
293    field public static final int TIMEKEEPING_SYSTEMS = 131; // 0x83
294    field public static final int TIMEX_GROUP_USA = 214; // 0xd6
295    field public static final int TOPCORN_POSITIONING_SYSTEMS = 139; // 0x8b
296    field public static final int TOSHIBA = 4; // 0x4
297    field public static final int TRANSILICA = 24; // 0x18
298    field public static final int TRELAB = 183; // 0xb7
299    field public static final int TTPCOM = 26; // 0x1a
300    field public static final int TXTR = 218; // 0xda
301    field public static final int TZERO_TECHNOLOGIES = 81; // 0x51
302    field public static final int UNIVERSAL_ELECTRONICS = 147; // 0x93
303    field public static final int VERTU = 162; // 0xa2
304    field public static final int VISTEON = 167; // 0xa7
305    field public static final int VIZIO = 88; // 0x58
306    field public static final int VOYETRA_TURTLE_BEACH = 217; // 0xd9
307    field public static final int WAVEPLUS_TECHNOLOGY = 35; // 0x23
308    field public static final int WICENTRIC = 95; // 0x5f
309    field public static final int WIDCOMM = 17; // 0x11
310    field public static final int WUXI_VIMICRO = 129; // 0x81
311    field public static final int ZEEVO = 18; // 0x12
312    field public static final int ZER01_TV = 152; // 0x98
313    field public static final int ZOMM = 116; // 0x74
314    field public static final int ZSCAN_SOFTWARE = 141; // 0x8d
315  }
316
317  public final class BluetoothClass implements android.os.Parcelable {
318    method public int describeContents();
319    method public int getDeviceClass();
320    method public int getMajorDeviceClass();
321    method public boolean hasService(int);
322    method public void writeToParcel(android.os.Parcel, int);
323    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothClass> CREATOR;
324  }
325
326  public static class BluetoothClass.Device {
327    ctor public BluetoothClass.Device();
328    field public static final int AUDIO_VIDEO_CAMCORDER = 1076; // 0x434
329    field public static final int AUDIO_VIDEO_CAR_AUDIO = 1056; // 0x420
330    field public static final int AUDIO_VIDEO_HANDSFREE = 1032; // 0x408
331    field public static final int AUDIO_VIDEO_HEADPHONES = 1048; // 0x418
332    field public static final int AUDIO_VIDEO_HIFI_AUDIO = 1064; // 0x428
333    field public static final int AUDIO_VIDEO_LOUDSPEAKER = 1044; // 0x414
334    field public static final int AUDIO_VIDEO_MICROPHONE = 1040; // 0x410
335    field public static final int AUDIO_VIDEO_PORTABLE_AUDIO = 1052; // 0x41c
336    field public static final int AUDIO_VIDEO_SET_TOP_BOX = 1060; // 0x424
337    field public static final int AUDIO_VIDEO_UNCATEGORIZED = 1024; // 0x400
338    field public static final int AUDIO_VIDEO_VCR = 1068; // 0x42c
339    field public static final int AUDIO_VIDEO_VIDEO_CAMERA = 1072; // 0x430
340    field public static final int AUDIO_VIDEO_VIDEO_CONFERENCING = 1088; // 0x440
341    field public static final int AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER = 1084; // 0x43c
342    field public static final int AUDIO_VIDEO_VIDEO_GAMING_TOY = 1096; // 0x448
343    field public static final int AUDIO_VIDEO_VIDEO_MONITOR = 1080; // 0x438
344    field public static final int AUDIO_VIDEO_WEARABLE_HEADSET = 1028; // 0x404
345    field public static final int COMPUTER_DESKTOP = 260; // 0x104
346    field public static final int COMPUTER_HANDHELD_PC_PDA = 272; // 0x110
347    field public static final int COMPUTER_LAPTOP = 268; // 0x10c
348    field public static final int COMPUTER_PALM_SIZE_PC_PDA = 276; // 0x114
349    field public static final int COMPUTER_SERVER = 264; // 0x108
350    field public static final int COMPUTER_UNCATEGORIZED = 256; // 0x100
351    field public static final int COMPUTER_WEARABLE = 280; // 0x118
352    field public static final int HEALTH_BLOOD_PRESSURE = 2308; // 0x904
353    field public static final int HEALTH_DATA_DISPLAY = 2332; // 0x91c
354    field public static final int HEALTH_GLUCOSE = 2320; // 0x910
355    field public static final int HEALTH_PULSE_OXIMETER = 2324; // 0x914
356    field public static final int HEALTH_PULSE_RATE = 2328; // 0x918
357    field public static final int HEALTH_THERMOMETER = 2312; // 0x908
358    field public static final int HEALTH_UNCATEGORIZED = 2304; // 0x900
359    field public static final int HEALTH_WEIGHING = 2316; // 0x90c
360    field public static final int PHONE_CELLULAR = 516; // 0x204
361    field public static final int PHONE_CORDLESS = 520; // 0x208
362    field public static final int PHONE_ISDN = 532; // 0x214
363    field public static final int PHONE_MODEM_OR_GATEWAY = 528; // 0x210
364    field public static final int PHONE_SMART = 524; // 0x20c
365    field public static final int PHONE_UNCATEGORIZED = 512; // 0x200
366    field public static final int TOY_CONTROLLER = 2064; // 0x810
367    field public static final int TOY_DOLL_ACTION_FIGURE = 2060; // 0x80c
368    field public static final int TOY_GAME = 2068; // 0x814
369    field public static final int TOY_ROBOT = 2052; // 0x804
370    field public static final int TOY_UNCATEGORIZED = 2048; // 0x800
371    field public static final int TOY_VEHICLE = 2056; // 0x808
372    field public static final int WEARABLE_GLASSES = 1812; // 0x714
373    field public static final int WEARABLE_HELMET = 1808; // 0x710
374    field public static final int WEARABLE_JACKET = 1804; // 0x70c
375    field public static final int WEARABLE_PAGER = 1800; // 0x708
376    field public static final int WEARABLE_UNCATEGORIZED = 1792; // 0x700
377    field public static final int WEARABLE_WRIST_WATCH = 1796; // 0x704
378  }
379
380  public static class BluetoothClass.Device.Major {
381    ctor public BluetoothClass.Device.Major();
382    field public static final int AUDIO_VIDEO = 1024; // 0x400
383    field public static final int COMPUTER = 256; // 0x100
384    field public static final int HEALTH = 2304; // 0x900
385    field public static final int IMAGING = 1536; // 0x600
386    field public static final int MISC = 0; // 0x0
387    field public static final int NETWORKING = 768; // 0x300
388    field public static final int PERIPHERAL = 1280; // 0x500
389    field public static final int PHONE = 512; // 0x200
390    field public static final int TOY = 2048; // 0x800
391    field public static final int UNCATEGORIZED = 7936; // 0x1f00
392    field public static final int WEARABLE = 1792; // 0x700
393  }
394
395  public static final class BluetoothClass.Service {
396    ctor public BluetoothClass.Service();
397    field public static final int AUDIO = 2097152; // 0x200000
398    field public static final int CAPTURE = 524288; // 0x80000
399    field public static final int INFORMATION = 8388608; // 0x800000
400    field public static final int LIMITED_DISCOVERABILITY = 8192; // 0x2000
401    field public static final int NETWORKING = 131072; // 0x20000
402    field public static final int OBJECT_TRANSFER = 1048576; // 0x100000
403    field public static final int POSITIONING = 65536; // 0x10000
404    field public static final int RENDER = 262144; // 0x40000
405    field public static final int TELEPHONY = 4194304; // 0x400000
406  }
407
408  public final class BluetoothDevice implements android.os.Parcelable {
409    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothGatt connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback);
410    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothGatt connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback, int);
411    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothGatt connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback, int, int);
412    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothGatt connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback, int, int, android.os.Handler);
413    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean createBond();
414    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothSocket createInsecureL2capChannel(int) throws java.io.IOException;
415    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothSocket createInsecureRfcommSocketToServiceRecord(java.util.UUID) throws java.io.IOException;
416    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothSocket createL2capChannel(int) throws java.io.IOException;
417    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothSocket createRfcommSocketToServiceRecord(java.util.UUID) throws java.io.IOException;
418    method public int describeContents();
419    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean fetchUuidsWithSdp();
420    method public String getAddress();
421    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public String getAlias();
422    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothClass getBluetoothClass();
423    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getBondState();
424    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public String getName();
425    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getType();
426    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.os.ParcelUuid[] getUuids();
427    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int setAlias(@Nullable String);
428    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setPairingConfirmation(boolean);
429    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean setPin(byte[]);
430    method public void writeToParcel(android.os.Parcel, int);
431    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACL_CONNECTED = "android.bluetooth.device.action.ACL_CONNECTED";
432    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACL_DISCONNECTED = "android.bluetooth.device.action.ACL_DISCONNECTED";
433    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ACL_DISCONNECT_REQUESTED = "android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED";
434    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_ALIAS_CHANGED = "android.bluetooth.device.action.ALIAS_CHANGED";
435    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_BOND_STATE_CHANGED = "android.bluetooth.device.action.BOND_STATE_CHANGED";
436    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CLASS_CHANGED = "android.bluetooth.device.action.CLASS_CHANGED";
437    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public static final String ACTION_FOUND = "android.bluetooth.device.action.FOUND";
438    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_NAME_CHANGED = "android.bluetooth.device.action.NAME_CHANGED";
439    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_PAIRING_REQUEST = "android.bluetooth.device.action.PAIRING_REQUEST";
440    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_UUID = "android.bluetooth.device.action.UUID";
441    field public static final int ADDRESS_TYPE_PUBLIC = 0; // 0x0
442    field public static final int ADDRESS_TYPE_RANDOM = 1; // 0x1
443    field public static final int BOND_BONDED = 12; // 0xc
444    field public static final int BOND_BONDING = 11; // 0xb
445    field public static final int BOND_NONE = 10; // 0xa
446    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothDevice> CREATOR;
447    field public static final int DEVICE_TYPE_CLASSIC = 1; // 0x1
448    field public static final int DEVICE_TYPE_DUAL = 3; // 0x3
449    field public static final int DEVICE_TYPE_LE = 2; // 0x2
450    field public static final int DEVICE_TYPE_UNKNOWN = 0; // 0x0
451    field public static final int ERROR = -2147483648; // 0x80000000
452    field public static final String EXTRA_BOND_STATE = "android.bluetooth.device.extra.BOND_STATE";
453    field public static final String EXTRA_CLASS = "android.bluetooth.device.extra.CLASS";
454    field public static final String EXTRA_DEVICE = "android.bluetooth.device.extra.DEVICE";
455    field public static final String EXTRA_NAME = "android.bluetooth.device.extra.NAME";
456    field public static final String EXTRA_PAIRING_KEY = "android.bluetooth.device.extra.PAIRING_KEY";
457    field public static final String EXTRA_PAIRING_VARIANT = "android.bluetooth.device.extra.PAIRING_VARIANT";
458    field public static final String EXTRA_PREVIOUS_BOND_STATE = "android.bluetooth.device.extra.PREVIOUS_BOND_STATE";
459    field public static final String EXTRA_RSSI = "android.bluetooth.device.extra.RSSI";
460    field public static final String EXTRA_UUID = "android.bluetooth.device.extra.UUID";
461    field public static final int PAIRING_VARIANT_PASSKEY_CONFIRMATION = 2; // 0x2
462    field public static final int PAIRING_VARIANT_PIN = 0; // 0x0
463    field public static final int PHY_LE_1M = 1; // 0x1
464    field public static final int PHY_LE_1M_MASK = 1; // 0x1
465    field public static final int PHY_LE_2M = 2; // 0x2
466    field public static final int PHY_LE_2M_MASK = 2; // 0x2
467    field public static final int PHY_LE_CODED = 3; // 0x3
468    field public static final int PHY_LE_CODED_MASK = 4; // 0x4
469    field public static final int PHY_OPTION_NO_PREFERRED = 0; // 0x0
470    field public static final int PHY_OPTION_S2 = 1; // 0x1
471    field public static final int PHY_OPTION_S8 = 2; // 0x2
472    field public static final int TRANSPORT_AUTO = 0; // 0x0
473    field public static final int TRANSPORT_BREDR = 1; // 0x1
474    field public static final int TRANSPORT_LE = 2; // 0x2
475  }
476
477  public final class BluetoothGatt implements android.bluetooth.BluetoothProfile {
478    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void abortReliableWrite();
479    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void abortReliableWrite(android.bluetooth.BluetoothDevice);
480    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean beginReliableWrite();
481    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void close();
482    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean connect();
483    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void disconnect();
484    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean discoverServices();
485    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean executeReliableWrite();
486    method public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
487    method public int getConnectionState(android.bluetooth.BluetoothDevice);
488    method public android.bluetooth.BluetoothDevice getDevice();
489    method public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
490    method public android.bluetooth.BluetoothGattService getService(java.util.UUID);
491    method public java.util.List<android.bluetooth.BluetoothGattService> getServices();
492    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean readCharacteristic(android.bluetooth.BluetoothGattCharacteristic);
493    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean readDescriptor(android.bluetooth.BluetoothGattDescriptor);
494    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void readPhy();
495    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean readRemoteRssi();
496    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean requestConnectionPriority(int);
497    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean requestMtu(int);
498    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean setCharacteristicNotification(android.bluetooth.BluetoothGattCharacteristic, boolean);
499    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void setPreferredPhy(int, int, int);
500    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean writeCharacteristic(android.bluetooth.BluetoothGattCharacteristic);
501    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean writeDescriptor(android.bluetooth.BluetoothGattDescriptor);
502    field public static final int CONNECTION_PRIORITY_BALANCED = 0; // 0x0
503    field public static final int CONNECTION_PRIORITY_HIGH = 1; // 0x1
504    field public static final int CONNECTION_PRIORITY_LOW_POWER = 2; // 0x2
505    field public static final int GATT_CONNECTION_CONGESTED = 143; // 0x8f
506    field public static final int GATT_FAILURE = 257; // 0x101
507    field public static final int GATT_INSUFFICIENT_AUTHENTICATION = 5; // 0x5
508    field public static final int GATT_INSUFFICIENT_ENCRYPTION = 15; // 0xf
509    field public static final int GATT_INVALID_ATTRIBUTE_LENGTH = 13; // 0xd
510    field public static final int GATT_INVALID_OFFSET = 7; // 0x7
511    field public static final int GATT_READ_NOT_PERMITTED = 2; // 0x2
512    field public static final int GATT_REQUEST_NOT_SUPPORTED = 6; // 0x6
513    field public static final int GATT_SUCCESS = 0; // 0x0
514    field public static final int GATT_WRITE_NOT_PERMITTED = 3; // 0x3
515  }
516
517  public abstract class BluetoothGattCallback {
518    ctor public BluetoothGattCallback();
519    method public void onCharacteristicChanged(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattCharacteristic);
520    method public void onCharacteristicRead(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattCharacteristic, int);
521    method public void onCharacteristicWrite(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattCharacteristic, int);
522    method public void onConnectionStateChange(android.bluetooth.BluetoothGatt, int, int);
523    method public void onDescriptorRead(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattDescriptor, int);
524    method public void onDescriptorWrite(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattDescriptor, int);
525    method public void onMtuChanged(android.bluetooth.BluetoothGatt, int, int);
526    method public void onPhyRead(android.bluetooth.BluetoothGatt, int, int, int);
527    method public void onPhyUpdate(android.bluetooth.BluetoothGatt, int, int, int);
528    method public void onReadRemoteRssi(android.bluetooth.BluetoothGatt, int, int);
529    method public void onReliableWriteCompleted(android.bluetooth.BluetoothGatt, int);
530    method public void onServiceChanged(@NonNull android.bluetooth.BluetoothGatt);
531    method public void onServicesDiscovered(android.bluetooth.BluetoothGatt, int);
532  }
533
534  public class BluetoothGattCharacteristic implements android.os.Parcelable {
535    ctor public BluetoothGattCharacteristic(java.util.UUID, int, int);
536    method public boolean addDescriptor(android.bluetooth.BluetoothGattDescriptor);
537    method public int describeContents();
538    method public android.bluetooth.BluetoothGattDescriptor getDescriptor(java.util.UUID);
539    method public java.util.List<android.bluetooth.BluetoothGattDescriptor> getDescriptors();
540    method public Float getFloatValue(int, int);
541    method public int getInstanceId();
542    method public Integer getIntValue(int, int);
543    method public int getPermissions();
544    method public int getProperties();
545    method public android.bluetooth.BluetoothGattService getService();
546    method public String getStringValue(int);
547    method public java.util.UUID getUuid();
548    method public byte[] getValue();
549    method public int getWriteType();
550    method public boolean setValue(byte[]);
551    method public boolean setValue(int, int, int);
552    method public boolean setValue(int, int, int, int);
553    method public boolean setValue(String);
554    method public void setWriteType(int);
555    method public void writeToParcel(android.os.Parcel, int);
556    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothGattCharacteristic> CREATOR;
557    field public static final int FORMAT_FLOAT = 52; // 0x34
558    field public static final int FORMAT_SFLOAT = 50; // 0x32
559    field public static final int FORMAT_SINT16 = 34; // 0x22
560    field public static final int FORMAT_SINT32 = 36; // 0x24
561    field public static final int FORMAT_SINT8 = 33; // 0x21
562    field public static final int FORMAT_UINT16 = 18; // 0x12
563    field public static final int FORMAT_UINT32 = 20; // 0x14
564    field public static final int FORMAT_UINT8 = 17; // 0x11
565    field public static final int PERMISSION_READ = 1; // 0x1
566    field public static final int PERMISSION_READ_ENCRYPTED = 2; // 0x2
567    field public static final int PERMISSION_READ_ENCRYPTED_MITM = 4; // 0x4
568    field public static final int PERMISSION_WRITE = 16; // 0x10
569    field public static final int PERMISSION_WRITE_ENCRYPTED = 32; // 0x20
570    field public static final int PERMISSION_WRITE_ENCRYPTED_MITM = 64; // 0x40
571    field public static final int PERMISSION_WRITE_SIGNED = 128; // 0x80
572    field public static final int PERMISSION_WRITE_SIGNED_MITM = 256; // 0x100
573    field public static final int PROPERTY_BROADCAST = 1; // 0x1
574    field public static final int PROPERTY_EXTENDED_PROPS = 128; // 0x80
575    field public static final int PROPERTY_INDICATE = 32; // 0x20
576    field public static final int PROPERTY_NOTIFY = 16; // 0x10
577    field public static final int PROPERTY_READ = 2; // 0x2
578    field public static final int PROPERTY_SIGNED_WRITE = 64; // 0x40
579    field public static final int PROPERTY_WRITE = 8; // 0x8
580    field public static final int PROPERTY_WRITE_NO_RESPONSE = 4; // 0x4
581    field public static final int WRITE_TYPE_DEFAULT = 2; // 0x2
582    field public static final int WRITE_TYPE_NO_RESPONSE = 1; // 0x1
583    field public static final int WRITE_TYPE_SIGNED = 4; // 0x4
584    field protected java.util.List<android.bluetooth.BluetoothGattDescriptor> mDescriptors;
585  }
586
587  public class BluetoothGattDescriptor implements android.os.Parcelable {
588    ctor public BluetoothGattDescriptor(java.util.UUID, int);
589    method public int describeContents();
590    method public android.bluetooth.BluetoothGattCharacteristic getCharacteristic();
591    method public int getPermissions();
592    method public java.util.UUID getUuid();
593    method public byte[] getValue();
594    method public boolean setValue(byte[]);
595    method public void writeToParcel(android.os.Parcel, int);
596    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothGattDescriptor> CREATOR;
597    field public static final byte[] DISABLE_NOTIFICATION_VALUE;
598    field public static final byte[] ENABLE_INDICATION_VALUE;
599    field public static final byte[] ENABLE_NOTIFICATION_VALUE;
600    field public static final int PERMISSION_READ = 1; // 0x1
601    field public static final int PERMISSION_READ_ENCRYPTED = 2; // 0x2
602    field public static final int PERMISSION_READ_ENCRYPTED_MITM = 4; // 0x4
603    field public static final int PERMISSION_WRITE = 16; // 0x10
604    field public static final int PERMISSION_WRITE_ENCRYPTED = 32; // 0x20
605    field public static final int PERMISSION_WRITE_ENCRYPTED_MITM = 64; // 0x40
606    field public static final int PERMISSION_WRITE_SIGNED = 128; // 0x80
607    field public static final int PERMISSION_WRITE_SIGNED_MITM = 256; // 0x100
608  }
609
610  public final class BluetoothGattServer implements android.bluetooth.BluetoothProfile {
611    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean addService(android.bluetooth.BluetoothGattService);
612    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void cancelConnection(android.bluetooth.BluetoothDevice);
613    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void clearServices();
614    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void close();
615    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean connect(android.bluetooth.BluetoothDevice, boolean);
616    method public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
617    method public int getConnectionState(android.bluetooth.BluetoothDevice);
618    method public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
619    method public android.bluetooth.BluetoothGattService getService(java.util.UUID);
620    method public java.util.List<android.bluetooth.BluetoothGattService> getServices();
621    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean notifyCharacteristicChanged(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothGattCharacteristic, boolean);
622    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void readPhy(android.bluetooth.BluetoothDevice);
623    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean removeService(android.bluetooth.BluetoothGattService);
624    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean sendResponse(android.bluetooth.BluetoothDevice, int, int, int, byte[]);
625    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void setPreferredPhy(android.bluetooth.BluetoothDevice, int, int, int);
626  }
627
628  public abstract class BluetoothGattServerCallback {
629    ctor public BluetoothGattServerCallback();
630    method public void onCharacteristicReadRequest(android.bluetooth.BluetoothDevice, int, int, android.bluetooth.BluetoothGattCharacteristic);
631    method public void onCharacteristicWriteRequest(android.bluetooth.BluetoothDevice, int, android.bluetooth.BluetoothGattCharacteristic, boolean, boolean, int, byte[]);
632    method public void onConnectionStateChange(android.bluetooth.BluetoothDevice, int, int);
633    method public void onDescriptorReadRequest(android.bluetooth.BluetoothDevice, int, int, android.bluetooth.BluetoothGattDescriptor);
634    method public void onDescriptorWriteRequest(android.bluetooth.BluetoothDevice, int, android.bluetooth.BluetoothGattDescriptor, boolean, boolean, int, byte[]);
635    method public void onExecuteWrite(android.bluetooth.BluetoothDevice, int, boolean);
636    method public void onMtuChanged(android.bluetooth.BluetoothDevice, int);
637    method public void onNotificationSent(android.bluetooth.BluetoothDevice, int);
638    method public void onPhyRead(android.bluetooth.BluetoothDevice, int, int, int);
639    method public void onPhyUpdate(android.bluetooth.BluetoothDevice, int, int, int);
640    method public void onServiceAdded(int, android.bluetooth.BluetoothGattService);
641  }
642
643  public class BluetoothGattService implements android.os.Parcelable {
644    ctor public BluetoothGattService(java.util.UUID, int);
645    method public boolean addCharacteristic(android.bluetooth.BluetoothGattCharacteristic);
646    method public boolean addService(android.bluetooth.BluetoothGattService);
647    method public int describeContents();
648    method public android.bluetooth.BluetoothGattCharacteristic getCharacteristic(java.util.UUID);
649    method public java.util.List<android.bluetooth.BluetoothGattCharacteristic> getCharacteristics();
650    method public java.util.List<android.bluetooth.BluetoothGattService> getIncludedServices();
651    method public int getInstanceId();
652    method public int getType();
653    method public java.util.UUID getUuid();
654    method public void writeToParcel(android.os.Parcel, int);
655    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothGattService> CREATOR;
656    field public static final int SERVICE_TYPE_PRIMARY = 0; // 0x0
657    field public static final int SERVICE_TYPE_SECONDARY = 1; // 0x1
658    field protected java.util.List<android.bluetooth.BluetoothGattCharacteristic> mCharacteristics;
659    field protected java.util.List<android.bluetooth.BluetoothGattService> mIncludedServices;
660  }
661
662  public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile {
663    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
664    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice);
665    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
666    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isAudioConnected(android.bluetooth.BluetoothDevice);
667    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isNoiseReductionSupported(@NonNull android.bluetooth.BluetoothDevice);
668    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isVoiceRecognitionSupported(@NonNull android.bluetooth.BluetoothDevice);
669    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean sendVendorSpecificResultCode(android.bluetooth.BluetoothDevice, String, String);
670    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean startVoiceRecognition(android.bluetooth.BluetoothDevice);
671    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean stopVoiceRecognition(android.bluetooth.BluetoothDevice);
672    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_AUDIO_STATE_CHANGED = "android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED";
673    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED";
674    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_VENDOR_SPECIFIC_HEADSET_EVENT = "android.bluetooth.headset.action.VENDOR_SPECIFIC_HEADSET_EVENT";
675    field public static final int AT_CMD_TYPE_ACTION = 4; // 0x4
676    field public static final int AT_CMD_TYPE_BASIC = 3; // 0x3
677    field public static final int AT_CMD_TYPE_READ = 0; // 0x0
678    field public static final int AT_CMD_TYPE_SET = 2; // 0x2
679    field public static final int AT_CMD_TYPE_TEST = 1; // 0x1
680    field public static final String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_ARGS";
681    field public static final String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD";
682    field public static final String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE = "android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE";
683    field public static final int STATE_AUDIO_CONNECTED = 12; // 0xc
684    field public static final int STATE_AUDIO_CONNECTING = 11; // 0xb
685    field public static final int STATE_AUDIO_DISCONNECTED = 10; // 0xa
686    field public static final String VENDOR_RESULT_CODE_COMMAND_ANDROID = "+ANDROID";
687    field public static final String VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY = "android.bluetooth.headset.intent.category.companyid";
688  }
689
690  @Deprecated public final class BluetoothHealth implements android.bluetooth.BluetoothProfile {
691    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean connectChannelToSource(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration);
692    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disconnectChannel(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration, int);
693    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
694    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice);
695    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
696    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.os.ParcelFileDescriptor getMainChannelFd(android.bluetooth.BluetoothDevice, android.bluetooth.BluetoothHealthAppConfiguration);
697    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean registerSinkAppConfiguration(String, int, android.bluetooth.BluetoothHealthCallback);
698    method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean unregisterAppConfiguration(android.bluetooth.BluetoothHealthAppConfiguration);
699    field @Deprecated public static final int APP_CONFIG_REGISTRATION_FAILURE = 1; // 0x1
700    field @Deprecated public static final int APP_CONFIG_REGISTRATION_SUCCESS = 0; // 0x0
701    field @Deprecated public static final int APP_CONFIG_UNREGISTRATION_FAILURE = 3; // 0x3
702    field @Deprecated public static final int APP_CONFIG_UNREGISTRATION_SUCCESS = 2; // 0x2
703    field @Deprecated public static final int CHANNEL_TYPE_RELIABLE = 10; // 0xa
704    field @Deprecated public static final int CHANNEL_TYPE_STREAMING = 11; // 0xb
705    field @Deprecated public static final int SINK_ROLE = 2; // 0x2
706    field @Deprecated public static final int SOURCE_ROLE = 1; // 0x1
707    field @Deprecated public static final int STATE_CHANNEL_CONNECTED = 2; // 0x2
708    field @Deprecated public static final int STATE_CHANNEL_CONNECTING = 1; // 0x1
709    field @Deprecated public static final int STATE_CHANNEL_DISCONNECTED = 0; // 0x0
710    field @Deprecated public static final int STATE_CHANNEL_DISCONNECTING = 3; // 0x3
711  }
712
713  @Deprecated public final class BluetoothHealthAppConfiguration implements android.os.Parcelable {
714    method @Deprecated public int describeContents();
715    method @Deprecated public int getDataType();
716    method @Deprecated public String getName();
717    method @Deprecated public int getRole();
718    method @Deprecated public void writeToParcel(android.os.Parcel, int);
719    field @Deprecated @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHealthAppConfiguration> CREATOR;
720  }
721
722  @Deprecated public abstract class BluetoothHealthCallback {
723    ctor @Deprecated public BluetoothHealthCallback();
724    method @Deprecated @BinderThread public void onHealthAppConfigurationStatusChange(android.bluetooth.BluetoothHealthAppConfiguration, int);
725    method @Deprecated @BinderThread public void onHealthChannelStateChange(android.bluetooth.BluetoothHealthAppConfiguration, android.bluetooth.BluetoothDevice, int, int, android.os.ParcelFileDescriptor, int);
726  }
727
728  public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile {
729    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
730    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
731    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]);
732    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.hearingaid.profile.action.CONNECTION_STATE_CHANGED";
733  }
734
735  public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile {
736    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean connect(android.bluetooth.BluetoothDevice);
737    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disconnect(android.bluetooth.BluetoothDevice);
738    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
739    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice);
740    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
741    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);
742    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean replyReport(android.bluetooth.BluetoothDevice, byte, byte, byte[]);
743    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean reportError(android.bluetooth.BluetoothDevice, byte);
744    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean sendReport(android.bluetooth.BluetoothDevice, int, byte[]);
745    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean unregisterApp();
746    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.hiddevice.profile.action.CONNECTION_STATE_CHANGED";
747    field public static final byte ERROR_RSP_INVALID_PARAM = 4; // 0x4
748    field public static final byte ERROR_RSP_INVALID_RPT_ID = 2; // 0x2
749    field public static final byte ERROR_RSP_NOT_READY = 1; // 0x1
750    field public static final byte ERROR_RSP_SUCCESS = 0; // 0x0
751    field public static final byte ERROR_RSP_UNKNOWN = 14; // 0xe
752    field public static final byte ERROR_RSP_UNSUPPORTED_REQ = 3; // 0x3
753    field public static final byte PROTOCOL_BOOT_MODE = 0; // 0x0
754    field public static final byte PROTOCOL_REPORT_MODE = 1; // 0x1
755    field public static final byte REPORT_TYPE_FEATURE = 3; // 0x3
756    field public static final byte REPORT_TYPE_INPUT = 1; // 0x1
757    field public static final byte REPORT_TYPE_OUTPUT = 2; // 0x2
758    field public static final byte SUBCLASS1_COMBO = -64; // 0xffffffc0
759    field public static final byte SUBCLASS1_KEYBOARD = 64; // 0x40
760    field public static final byte SUBCLASS1_MOUSE = -128; // 0xffffff80
761    field public static final byte SUBCLASS1_NONE = 0; // 0x0
762    field public static final byte SUBCLASS2_CARD_READER = 6; // 0x6
763    field public static final byte SUBCLASS2_DIGITIZER_TABLET = 5; // 0x5
764    field public static final byte SUBCLASS2_GAMEPAD = 2; // 0x2
765    field public static final byte SUBCLASS2_JOYSTICK = 1; // 0x1
766    field public static final byte SUBCLASS2_REMOTE_CONTROL = 3; // 0x3
767    field public static final byte SUBCLASS2_SENSING_DEVICE = 4; // 0x4
768    field public static final byte SUBCLASS2_UNCATEGORIZED = 0; // 0x0
769  }
770
771  public abstract static class BluetoothHidDevice.Callback {
772    ctor public BluetoothHidDevice.Callback();
773    method public void onAppStatusChanged(android.bluetooth.BluetoothDevice, boolean);
774    method public void onConnectionStateChanged(android.bluetooth.BluetoothDevice, int);
775    method public void onGetReport(android.bluetooth.BluetoothDevice, byte, byte, int);
776    method public void onInterruptData(android.bluetooth.BluetoothDevice, byte, byte[]);
777    method public void onSetProtocol(android.bluetooth.BluetoothDevice, byte);
778    method public void onSetReport(android.bluetooth.BluetoothDevice, byte, byte, byte[]);
779    method public void onVirtualCableUnplug(android.bluetooth.BluetoothDevice);
780  }
781
782  public final class BluetoothHidDeviceAppQosSettings implements android.os.Parcelable {
783    ctor public BluetoothHidDeviceAppQosSettings(int, int, int, int, int, int);
784    method public int describeContents();
785    method public int getDelayVariation();
786    method public int getLatency();
787    method public int getPeakBandwidth();
788    method public int getServiceType();
789    method public int getTokenBucketSize();
790    method public int getTokenRate();
791    method public void writeToParcel(android.os.Parcel, int);
792    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHidDeviceAppQosSettings> CREATOR;
793    field public static final int MAX = -1; // 0xffffffff
794    field public static final int SERVICE_BEST_EFFORT = 1; // 0x1
795    field public static final int SERVICE_GUARANTEED = 2; // 0x2
796    field public static final int SERVICE_NO_TRAFFIC = 0; // 0x0
797  }
798
799  public final class BluetoothHidDeviceAppSdpSettings implements android.os.Parcelable {
800    ctor public BluetoothHidDeviceAppSdpSettings(String, String, String, byte, byte[]);
801    method public int describeContents();
802    method public String getDescription();
803    method public byte[] getDescriptors();
804    method public String getName();
805    method public String getProvider();
806    method public byte getSubclass();
807    method public void writeToParcel(android.os.Parcel, int);
808    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHidDeviceAppSdpSettings> CREATOR;
809  }
810
811  public final class BluetoothLeAudio implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile {
812    method public void close();
813    method protected void finalize();
814    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
815    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
816    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(@NonNull int[]);
817    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";
818  }
819
820  public final class BluetoothManager {
821    method public android.bluetooth.BluetoothAdapter getAdapter();
822    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices(int);
823    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(android.bluetooth.BluetoothDevice, int);
824    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int, int[]);
825    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public android.bluetooth.BluetoothGattServer openGattServer(android.content.Context, android.bluetooth.BluetoothGattServerCallback);
826  }
827
828  public interface BluetoothProfile {
829    method public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
830    method public int getConnectionState(android.bluetooth.BluetoothDevice);
831    method public java.util.List<android.bluetooth.BluetoothDevice> getDevicesMatchingConnectionStates(int[]);
832    field public static final int A2DP = 2; // 0x2
833    field public static final String EXTRA_PREVIOUS_STATE = "android.bluetooth.profile.extra.PREVIOUS_STATE";
834    field public static final String EXTRA_STATE = "android.bluetooth.profile.extra.STATE";
835    field public static final int GATT = 7; // 0x7
836    field public static final int GATT_SERVER = 8; // 0x8
837    field public static final int HEADSET = 1; // 0x1
838    field @Deprecated public static final int HEALTH = 3; // 0x3
839    field public static final int HEARING_AID = 21; // 0x15
840    field public static final int HID_DEVICE = 19; // 0x13
841    field public static final int SAP = 10; // 0xa
842    field public static final int STATE_CONNECTED = 2; // 0x2
843    field public static final int STATE_CONNECTING = 1; // 0x1
844    field public static final int STATE_DISCONNECTED = 0; // 0x0
845    field public static final int STATE_DISCONNECTING = 3; // 0x3
846  }
847
848  public static interface BluetoothProfile.ServiceListener {
849    method public void onServiceConnected(int, android.bluetooth.BluetoothProfile);
850    method public void onServiceDisconnected(int);
851  }
852
853  public final class BluetoothServerSocket implements java.io.Closeable {
854    method public android.bluetooth.BluetoothSocket accept() throws java.io.IOException;
855    method public android.bluetooth.BluetoothSocket accept(int) throws java.io.IOException;
856    method public void close() throws java.io.IOException;
857    method public int getPsm();
858  }
859
860  public final class BluetoothSocket implements java.io.Closeable {
861    method public void close() throws java.io.IOException;
862    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public void connect() throws java.io.IOException;
863    method public int getConnectionType();
864    method public java.io.InputStream getInputStream() throws java.io.IOException;
865    method public int getMaxReceivePacketSize();
866    method public int getMaxTransmitPacketSize();
867    method public java.io.OutputStream getOutputStream() throws java.io.IOException;
868    method public android.bluetooth.BluetoothDevice getRemoteDevice();
869    method public boolean isConnected();
870    field public static final int TYPE_L2CAP = 3; // 0x3
871    field public static final int TYPE_RFCOMM = 1; // 0x1
872    field public static final int TYPE_SCO = 2; // 0x2
873  }
874
875  public final class BluetoothStatusCodes {
876    field public static final int ERROR_BLUETOOTH_NOT_ALLOWED = 2; // 0x2
877    field public static final int ERROR_BLUETOOTH_NOT_ENABLED = 1; // 0x1
878    field public static final int ERROR_DEVICE_NOT_BONDED = 3; // 0x3
879    field public static final int ERROR_MISSING_BLUETOOTH_CONNECT_PERMISSION = 6; // 0x6
880    field public static final int ERROR_UNKNOWN = 2147483647; // 0x7fffffff
881    field public static final int SUCCESS = 0; // 0x0
882  }
883
884}
885
886package android.bluetooth.le {
887
888  public abstract class AdvertiseCallback {
889    ctor public AdvertiseCallback();
890    method public void onStartFailure(int);
891    method public void onStartSuccess(android.bluetooth.le.AdvertiseSettings);
892    field public static final int ADVERTISE_FAILED_ALREADY_STARTED = 3; // 0x3
893    field public static final int ADVERTISE_FAILED_DATA_TOO_LARGE = 1; // 0x1
894    field public static final int ADVERTISE_FAILED_FEATURE_UNSUPPORTED = 5; // 0x5
895    field public static final int ADVERTISE_FAILED_INTERNAL_ERROR = 4; // 0x4
896    field public static final int ADVERTISE_FAILED_TOO_MANY_ADVERTISERS = 2; // 0x2
897  }
898
899  public final class AdvertiseData implements android.os.Parcelable {
900    method public int describeContents();
901    method public boolean getIncludeDeviceName();
902    method public boolean getIncludeTxPowerLevel();
903    method public android.util.SparseArray<byte[]> getManufacturerSpecificData();
904    method public java.util.Map<android.os.ParcelUuid,byte[]> getServiceData();
905    method @NonNull public java.util.List<android.os.ParcelUuid> getServiceSolicitationUuids();
906    method public java.util.List<android.os.ParcelUuid> getServiceUuids();
907    method public void writeToParcel(android.os.Parcel, int);
908    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.AdvertiseData> CREATOR;
909  }
910
911  public static final class AdvertiseData.Builder {
912    ctor public AdvertiseData.Builder();
913    method public android.bluetooth.le.AdvertiseData.Builder addManufacturerData(int, byte[]);
914    method public android.bluetooth.le.AdvertiseData.Builder addServiceData(android.os.ParcelUuid, byte[]);
915    method @NonNull public android.bluetooth.le.AdvertiseData.Builder addServiceSolicitationUuid(@NonNull android.os.ParcelUuid);
916    method public android.bluetooth.le.AdvertiseData.Builder addServiceUuid(android.os.ParcelUuid);
917    method public android.bluetooth.le.AdvertiseData build();
918    method public android.bluetooth.le.AdvertiseData.Builder setIncludeDeviceName(boolean);
919    method public android.bluetooth.le.AdvertiseData.Builder setIncludeTxPowerLevel(boolean);
920  }
921
922  public final class AdvertiseSettings implements android.os.Parcelable {
923    method public int describeContents();
924    method public int getMode();
925    method public int getTimeout();
926    method public int getTxPowerLevel();
927    method public boolean isConnectable();
928    method public void writeToParcel(android.os.Parcel, int);
929    field public static final int ADVERTISE_MODE_BALANCED = 1; // 0x1
930    field public static final int ADVERTISE_MODE_LOW_LATENCY = 2; // 0x2
931    field public static final int ADVERTISE_MODE_LOW_POWER = 0; // 0x0
932    field public static final int ADVERTISE_TX_POWER_HIGH = 3; // 0x3
933    field public static final int ADVERTISE_TX_POWER_LOW = 1; // 0x1
934    field public static final int ADVERTISE_TX_POWER_MEDIUM = 2; // 0x2
935    field public static final int ADVERTISE_TX_POWER_ULTRA_LOW = 0; // 0x0
936    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.AdvertiseSettings> CREATOR;
937  }
938
939  public static final class AdvertiseSettings.Builder {
940    ctor public AdvertiseSettings.Builder();
941    method public android.bluetooth.le.AdvertiseSettings build();
942    method public android.bluetooth.le.AdvertiseSettings.Builder setAdvertiseMode(int);
943    method public android.bluetooth.le.AdvertiseSettings.Builder setConnectable(boolean);
944    method public android.bluetooth.le.AdvertiseSettings.Builder setTimeout(int);
945    method public android.bluetooth.le.AdvertiseSettings.Builder setTxPowerLevel(int);
946  }
947
948  public final class AdvertisingSet {
949    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void enableAdvertising(boolean, int, int);
950    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setAdvertisingData(android.bluetooth.le.AdvertiseData);
951    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setAdvertisingParameters(android.bluetooth.le.AdvertisingSetParameters);
952    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setPeriodicAdvertisingData(android.bluetooth.le.AdvertiseData);
953    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setPeriodicAdvertisingEnabled(boolean);
954    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setPeriodicAdvertisingParameters(android.bluetooth.le.PeriodicAdvertisingParameters);
955    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void setScanResponseData(android.bluetooth.le.AdvertiseData);
956  }
957
958  public abstract class AdvertisingSetCallback {
959    ctor public AdvertisingSetCallback();
960    method public void onAdvertisingDataSet(android.bluetooth.le.AdvertisingSet, int);
961    method public void onAdvertisingEnabled(android.bluetooth.le.AdvertisingSet, boolean, int);
962    method public void onAdvertisingParametersUpdated(android.bluetooth.le.AdvertisingSet, int, int);
963    method public void onAdvertisingSetStarted(android.bluetooth.le.AdvertisingSet, int, int);
964    method public void onAdvertisingSetStopped(android.bluetooth.le.AdvertisingSet);
965    method public void onPeriodicAdvertisingDataSet(android.bluetooth.le.AdvertisingSet, int);
966    method public void onPeriodicAdvertisingEnabled(android.bluetooth.le.AdvertisingSet, boolean, int);
967    method public void onPeriodicAdvertisingParametersUpdated(android.bluetooth.le.AdvertisingSet, int);
968    method public void onScanResponseDataSet(android.bluetooth.le.AdvertisingSet, int);
969    field public static final int ADVERTISE_FAILED_ALREADY_STARTED = 3; // 0x3
970    field public static final int ADVERTISE_FAILED_DATA_TOO_LARGE = 1; // 0x1
971    field public static final int ADVERTISE_FAILED_FEATURE_UNSUPPORTED = 5; // 0x5
972    field public static final int ADVERTISE_FAILED_INTERNAL_ERROR = 4; // 0x4
973    field public static final int ADVERTISE_FAILED_TOO_MANY_ADVERTISERS = 2; // 0x2
974    field public static final int ADVERTISE_SUCCESS = 0; // 0x0
975  }
976
977  public final class AdvertisingSetParameters implements android.os.Parcelable {
978    method public int describeContents();
979    method public int getInterval();
980    method public int getPrimaryPhy();
981    method public int getSecondaryPhy();
982    method public int getTxPowerLevel();
983    method public boolean includeTxPower();
984    method public boolean isAnonymous();
985    method public boolean isConnectable();
986    method public boolean isLegacy();
987    method public boolean isScannable();
988    method public void writeToParcel(android.os.Parcel, int);
989    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.AdvertisingSetParameters> CREATOR;
990    field public static final int INTERVAL_HIGH = 1600; // 0x640
991    field public static final int INTERVAL_LOW = 160; // 0xa0
992    field public static final int INTERVAL_MAX = 16777215; // 0xffffff
993    field public static final int INTERVAL_MEDIUM = 400; // 0x190
994    field public static final int INTERVAL_MIN = 160; // 0xa0
995    field public static final int TX_POWER_HIGH = 1; // 0x1
996    field public static final int TX_POWER_LOW = -15; // 0xfffffff1
997    field public static final int TX_POWER_MAX = 1; // 0x1
998    field public static final int TX_POWER_MEDIUM = -7; // 0xfffffff9
999    field public static final int TX_POWER_MIN = -127; // 0xffffff81
1000    field public static final int TX_POWER_ULTRA_LOW = -21; // 0xffffffeb
1001  }
1002
1003  public static final class AdvertisingSetParameters.Builder {
1004    ctor public AdvertisingSetParameters.Builder();
1005    method public android.bluetooth.le.AdvertisingSetParameters build();
1006    method public android.bluetooth.le.AdvertisingSetParameters.Builder setAnonymous(boolean);
1007    method public android.bluetooth.le.AdvertisingSetParameters.Builder setConnectable(boolean);
1008    method public android.bluetooth.le.AdvertisingSetParameters.Builder setIncludeTxPower(boolean);
1009    method public android.bluetooth.le.AdvertisingSetParameters.Builder setInterval(int);
1010    method public android.bluetooth.le.AdvertisingSetParameters.Builder setLegacyMode(boolean);
1011    method public android.bluetooth.le.AdvertisingSetParameters.Builder setPrimaryPhy(int);
1012    method public android.bluetooth.le.AdvertisingSetParameters.Builder setScannable(boolean);
1013    method public android.bluetooth.le.AdvertisingSetParameters.Builder setSecondaryPhy(int);
1014    method public android.bluetooth.le.AdvertisingSetParameters.Builder setTxPowerLevel(int);
1015  }
1016
1017  public final class BluetoothLeAdvertiser {
1018    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void startAdvertising(android.bluetooth.le.AdvertiseSettings, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseCallback);
1019    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void startAdvertising(android.bluetooth.le.AdvertiseSettings, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseCallback);
1020    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) 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);
1021    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) 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);
1022    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) 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);
1023    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) 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);
1024    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void stopAdvertising(android.bluetooth.le.AdvertiseCallback);
1025    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE) public void stopAdvertisingSet(android.bluetooth.le.AdvertisingSetCallback);
1026  }
1027
1028  public final class BluetoothLeScanner {
1029    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void flushPendingScanResults(android.bluetooth.le.ScanCallback);
1030    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void startScan(android.bluetooth.le.ScanCallback);
1031    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);
1032    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);
1033    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void stopScan(android.bluetooth.le.ScanCallback);
1034    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void stopScan(android.app.PendingIntent);
1035    field public static final String EXTRA_CALLBACK_TYPE = "android.bluetooth.le.extra.CALLBACK_TYPE";
1036    field public static final String EXTRA_ERROR_CODE = "android.bluetooth.le.extra.ERROR_CODE";
1037    field public static final String EXTRA_LIST_SCAN_RESULT = "android.bluetooth.le.extra.LIST_SCAN_RESULT";
1038  }
1039
1040  public final class PeriodicAdvertisingParameters implements android.os.Parcelable {
1041    method public int describeContents();
1042    method public boolean getIncludeTxPower();
1043    method public int getInterval();
1044    method public void writeToParcel(android.os.Parcel, int);
1045    field public static final android.os.Parcelable.Creator<android.bluetooth.le.PeriodicAdvertisingParameters> CREATOR;
1046  }
1047
1048  public static final class PeriodicAdvertisingParameters.Builder {
1049    ctor public PeriodicAdvertisingParameters.Builder();
1050    method public android.bluetooth.le.PeriodicAdvertisingParameters build();
1051    method public android.bluetooth.le.PeriodicAdvertisingParameters.Builder setIncludeTxPower(boolean);
1052    method public android.bluetooth.le.PeriodicAdvertisingParameters.Builder setInterval(int);
1053  }
1054
1055  public abstract class ScanCallback {
1056    ctor public ScanCallback();
1057    method public void onBatchScanResults(java.util.List<android.bluetooth.le.ScanResult>);
1058    method public void onScanFailed(int);
1059    method public void onScanResult(int, android.bluetooth.le.ScanResult);
1060    field public static final int SCAN_FAILED_ALREADY_STARTED = 1; // 0x1
1061    field public static final int SCAN_FAILED_APPLICATION_REGISTRATION_FAILED = 2; // 0x2
1062    field public static final int SCAN_FAILED_FEATURE_UNSUPPORTED = 4; // 0x4
1063    field public static final int SCAN_FAILED_INTERNAL_ERROR = 3; // 0x3
1064  }
1065
1066  public final class ScanFilter implements android.os.Parcelable {
1067    method public int describeContents();
1068    method @Nullable public String getDeviceAddress();
1069    method @Nullable public String getDeviceName();
1070    method @Nullable public byte[] getManufacturerData();
1071    method @Nullable public byte[] getManufacturerDataMask();
1072    method public int getManufacturerId();
1073    method @Nullable public byte[] getServiceData();
1074    method @Nullable public byte[] getServiceDataMask();
1075    method @Nullable public android.os.ParcelUuid getServiceDataUuid();
1076    method @Nullable public android.os.ParcelUuid getServiceSolicitationUuid();
1077    method @Nullable public android.os.ParcelUuid getServiceSolicitationUuidMask();
1078    method @Nullable public android.os.ParcelUuid getServiceUuid();
1079    method @Nullable public android.os.ParcelUuid getServiceUuidMask();
1080    method public boolean matches(android.bluetooth.le.ScanResult);
1081    method public void writeToParcel(android.os.Parcel, int);
1082    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ScanFilter> CREATOR;
1083  }
1084
1085  public static final class ScanFilter.Builder {
1086    ctor public ScanFilter.Builder();
1087    method public android.bluetooth.le.ScanFilter build();
1088    method public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(String);
1089    method public android.bluetooth.le.ScanFilter.Builder setDeviceName(String);
1090    method public android.bluetooth.le.ScanFilter.Builder setManufacturerData(int, byte[]);
1091    method public android.bluetooth.le.ScanFilter.Builder setManufacturerData(int, byte[], byte[]);
1092    method public android.bluetooth.le.ScanFilter.Builder setServiceData(android.os.ParcelUuid, byte[]);
1093    method public android.bluetooth.le.ScanFilter.Builder setServiceData(android.os.ParcelUuid, byte[], byte[]);
1094    method @NonNull public android.bluetooth.le.ScanFilter.Builder setServiceSolicitationUuid(@Nullable android.os.ParcelUuid);
1095    method @NonNull public android.bluetooth.le.ScanFilter.Builder setServiceSolicitationUuid(@Nullable android.os.ParcelUuid, @Nullable android.os.ParcelUuid);
1096    method public android.bluetooth.le.ScanFilter.Builder setServiceUuid(android.os.ParcelUuid);
1097    method public android.bluetooth.le.ScanFilter.Builder setServiceUuid(android.os.ParcelUuid, android.os.ParcelUuid);
1098  }
1099
1100  public final class ScanRecord {
1101    method public int getAdvertiseFlags();
1102    method public byte[] getBytes();
1103    method @Nullable public String getDeviceName();
1104    method public android.util.SparseArray<byte[]> getManufacturerSpecificData();
1105    method @Nullable public byte[] getManufacturerSpecificData(int);
1106    method public java.util.Map<android.os.ParcelUuid,byte[]> getServiceData();
1107    method @Nullable public byte[] getServiceData(android.os.ParcelUuid);
1108    method @NonNull public java.util.List<android.os.ParcelUuid> getServiceSolicitationUuids();
1109    method public java.util.List<android.os.ParcelUuid> getServiceUuids();
1110    method public int getTxPowerLevel();
1111  }
1112
1113  public final class ScanResult implements android.os.Parcelable {
1114    ctor @Deprecated public ScanResult(android.bluetooth.BluetoothDevice, android.bluetooth.le.ScanRecord, int, long);
1115    ctor public ScanResult(android.bluetooth.BluetoothDevice, int, int, int, int, int, int, int, android.bluetooth.le.ScanRecord, long);
1116    method public int describeContents();
1117    method public int getAdvertisingSid();
1118    method public int getDataStatus();
1119    method public android.bluetooth.BluetoothDevice getDevice();
1120    method public int getPeriodicAdvertisingInterval();
1121    method public int getPrimaryPhy();
1122    method public int getRssi();
1123    method @Nullable public android.bluetooth.le.ScanRecord getScanRecord();
1124    method public int getSecondaryPhy();
1125    method public long getTimestampNanos();
1126    method public int getTxPower();
1127    method public boolean isConnectable();
1128    method public boolean isLegacy();
1129    method public void writeToParcel(android.os.Parcel, int);
1130    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ScanResult> CREATOR;
1131    field public static final int DATA_COMPLETE = 0; // 0x0
1132    field public static final int DATA_TRUNCATED = 2; // 0x2
1133    field public static final int PERIODIC_INTERVAL_NOT_PRESENT = 0; // 0x0
1134    field public static final int PHY_UNUSED = 0; // 0x0
1135    field public static final int SID_NOT_PRESENT = 255; // 0xff
1136    field public static final int TX_POWER_NOT_PRESENT = 127; // 0x7f
1137  }
1138
1139  public final class ScanSettings implements android.os.Parcelable {
1140    method public int describeContents();
1141    method public int getCallbackType();
1142    method public boolean getLegacy();
1143    method public int getPhy();
1144    method public long getReportDelayMillis();
1145    method public int getScanMode();
1146    method public int getScanResultType();
1147    method public void writeToParcel(android.os.Parcel, int);
1148    field public static final int CALLBACK_TYPE_ALL_MATCHES = 1; // 0x1
1149    field public static final int CALLBACK_TYPE_FIRST_MATCH = 2; // 0x2
1150    field public static final int CALLBACK_TYPE_MATCH_LOST = 4; // 0x4
1151    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ScanSettings> CREATOR;
1152    field public static final int MATCH_MODE_AGGRESSIVE = 1; // 0x1
1153    field public static final int MATCH_MODE_STICKY = 2; // 0x2
1154    field public static final int MATCH_NUM_FEW_ADVERTISEMENT = 2; // 0x2
1155    field public static final int MATCH_NUM_MAX_ADVERTISEMENT = 3; // 0x3
1156    field public static final int MATCH_NUM_ONE_ADVERTISEMENT = 1; // 0x1
1157    field public static final int PHY_LE_ALL_SUPPORTED = 255; // 0xff
1158    field public static final int SCAN_MODE_BALANCED = 1; // 0x1
1159    field public static final int SCAN_MODE_LOW_LATENCY = 2; // 0x2
1160    field public static final int SCAN_MODE_LOW_POWER = 0; // 0x0
1161    field public static final int SCAN_MODE_OPPORTUNISTIC = -1; // 0xffffffff
1162  }
1163
1164  public static final class ScanSettings.Builder {
1165    ctor public ScanSettings.Builder();
1166    method public android.bluetooth.le.ScanSettings build();
1167    method public android.bluetooth.le.ScanSettings.Builder setCallbackType(int);
1168    method public android.bluetooth.le.ScanSettings.Builder setLegacy(boolean);
1169    method public android.bluetooth.le.ScanSettings.Builder setMatchMode(int);
1170    method public android.bluetooth.le.ScanSettings.Builder setNumOfMatches(int);
1171    method public android.bluetooth.le.ScanSettings.Builder setPhy(int);
1172    method public android.bluetooth.le.ScanSettings.Builder setReportDelay(long);
1173    method public android.bluetooth.le.ScanSettings.Builder setScanMode(int);
1174  }
1175
1176}
1177
1178