1# @ohos.bluetooth.access (蓝牙access模块)
2
3access模块提供了打开和关闭蓝牙、获取蓝牙状态的方法。
4
5> **说明:**
6>
7> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9
10## 导入模块
11
12```js
13import { access } from '@kit.ConnectivityKit';
14```
15
16
17## access.enableBluetooth
18
19enableBluetooth(): void
20
21开启蓝牙。
22
23**需要权限**:ohos.permission.ACCESS_BLUETOOTH
24
25**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
26
27**系统能力**:SystemCapability.Communication.Bluetooth.Core28
29**错误码**:
30
31以下错误码的详细介绍请参见[蓝牙服务子系统错误码](errorcode-bluetoothManager.md)。
32
33| 错误码ID | 错误信息            |
34| -------- | ------------------ |
35|201 | Permission denied.                 |
36|801 | Capability not supported.          |
37|2900001   | Service stopped.   |
38|2900099   | Operation failed.  |
39
40**示例:**
41
42```js
43import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
44try {
45    access.enableBluetooth();
46} catch (err) {
47    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
48}
49```
50
51
52## access.disableBluetooth
53
54disableBluetooth(): void
55
56关闭蓝牙。
57
58**需要权限**:ohos.permission.ACCESS_BLUETOOTH
59
60**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
61
62**系统能力**:SystemCapability.Communication.Bluetooth.Core63
64**错误码**:
65
66以下错误码的详细介绍请参见[蓝牙服务子系统错误码](errorcode-bluetoothManager.md)。
67
68|错误码ID   | 错误信息           |
69| -------- | ------------------ |
70|201 | Permission denied.                 |
71|801 | Capability not supported.          |
72|2900001   | Service stopped.   |
73|2900099   | Operation failed.  |
74
75**示例:**
76
77```js
78import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
79try {
80    access.disableBluetooth();
81} catch (err) {
82    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
83}
84```
85
86
87## access.getState
88
89getState(): BluetoothState
90
91获取蓝牙开关状态。
92
93**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
94
95**系统能力**:SystemCapability.Communication.Bluetooth.Core96
97**返回值:**
98
99| 类型                              | 说明              |
100| --------------------------------- | ---------------- |
101| [BluetoothState](#bluetoothstate) | 表示蓝牙开关状态。 |
102
103**错误码**:
104
105以下错误码的详细介绍请参见[蓝牙服务子系统错误码](errorcode-bluetoothManager.md)。
106
107|错误码ID   | 错误信息           |
108| -------- | ------------------ |
109|801 | Capability not supported.          |
110|2900001   | Service stopped.   |
111|2900099   | Operation failed.  |
112
113**示例:**
114
115```js
116import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
117try {
118    let state = access.getState();
119} catch (err) {
120    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
121}
122```
123
124## access.on('stateChange')<a name="stateChange"></a>
125
126on(type: 'stateChange', callback: Callback&lt;BluetoothState&gt;): void
127
128订阅蓝牙设备开关状态事件。使用Callback异步回调。
129
130**需要权限**:ohos.permission.ACCESS_BLUETOOTH
131
132**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
133
134**系统能力**:SystemCapability.Communication.Bluetooth.Core135
136**参数:**
137
138| 参数名   | 类型                                               | 必填  | 说明                                                       |
139| -------- | ------------------------------------------------- | ----- | ---------------------------------------------------------- |
140| type     | string                                            | 是    | 填写"stateChange"字符串,表示蓝牙状态改变事件。               |
141| callback | Callback&lt;[BluetoothState](#bluetoothstate)&gt; | 是    | 表示回调函数的入参,蓝牙状态。回调函数由用户创建通过该接口注册。 |
142
143**错误码**:
144
145以下错误码的详细介绍请参见[蓝牙服务子系统错误码](errorcode-bluetoothManager.md)。
146
147|错误码ID   | 错误信息           |
148| -------- | ------------------ |
149|201 | Permission denied.                 |
150|401 | Invalid parameter. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3. Parameter verification failed.                 |
151|801 | Capability not supported.          |
152|2900099   | Operation failed.  |
153
154**示例:**
155
156```js
157import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
158function onReceiveEvent(data: access.BluetoothState) {
159    console.info('bluetooth state = '+ JSON.stringify(data));
160}
161try {
162    access.on('stateChange', onReceiveEvent);
163} catch (err) {
164    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
165}
166```
167
168
169## access.off('stateChange')
170
171off(type: 'stateChange', callback?: Callback&lt;BluetoothState&gt;): void
172
173取消订阅蓝牙设备开关状态事件。
174
175**需要权限**:ohos.permission.ACCESS_BLUETOOTH
176
177**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
178
179**系统能力**:SystemCapability.Communication.Bluetooth.Core180
181**参数:**
182
183| 参数名      | 类型                                       | 必填   | 说明                                       |
184| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
185| type     | string                                   | 是    | 填写"stateChange"字符串,表示蓝牙状态改变事件。           |
186| callback | Callback&lt;[BluetoothState](#bluetoothstate)&gt; | 否    | 表示取消订阅蓝牙状态改变事件上报。不填该参数则取消订阅该type对应的所有回调。 |
187
188**错误码**:
189
190以下错误码的详细介绍请参见[蓝牙服务子系统错误码](errorcode-bluetoothManager.md)。
191
192| 错误码ID | 错误信息 |
193| -------- | ---------------------------- |
194|201 | Permission denied.                 |
195|401 | Invalid parameter. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3. Parameter verification failed.                 |
196|801 | Capability not supported.          |
197|2900099 | Operation failed.                        |
198
199**示例:**
200
201```js
202import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
203function onReceiveEvent(data: access.BluetoothState) {
204    console.info('bluetooth state = '+ JSON.stringify(data));
205}
206try {
207    access.on('stateChange', onReceiveEvent);
208    access.off('stateChange', onReceiveEvent);
209} catch (err) {
210    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
211}
212```
213
214
215## BluetoothState
216
217枚举,蓝牙开关状态。
218
219**原子化服务API**: 从API version 11开始,该接口支持在原子化服务中使用。
220
221**系统能力**:SystemCapability.Communication.Bluetooth.Core222
223| 名称                    | 值  | 说明                 |
224| --------------------- | ---- | ------------------ |
225| STATE_OFF             | 0    | 表示蓝牙已关闭。          |
226| STATE_TURNING_ON      | 1    | 表示蓝牙正在打开。          |
227| STATE_ON              | 2    | 表示蓝牙已打开。           |
228| STATE_TURNING_OFF     | 3    | 表示蓝牙正在关闭。          |
229| STATE_BLE_TURNING_ON  | 4    | 表示蓝牙正在打开LE-only模式。 |
230| STATE_BLE_ON          | 5    | 表示蓝牙正处于LE-only模式。  |
231| STATE_BLE_TURNING_OFF | 6    | 表示蓝牙正在关闭LE-only模式。 |
232
233