• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 蓝牙设置开发指导
2
3## 简介
4蓝牙设置主要提供了开启蓝牙、关闭蓝牙、获取蓝牙状态的方法,帮助开发者实现基本蓝牙功能。
5
6## 场景介绍
7主要场景有:
8
9- 开启、关闭蓝牙
10
11## 接口说明
12
13完整的JS API说明以及示例代码请参考:[access接口](../../reference/apis-connectivity-kit/js-apis-bluetooth-access.md)。
14
15具体接口说明如下表。
16
17| 接口名                             | 功能描述                                                                       |
18| ---------------------------------- | ------------------------------------------------------------------------------ |
19| enableBluetooth()                  | 开启蓝牙。                                                                       |
20| disableBluetooth()                 | 关闭蓝牙。                                                                       |
21| getState()                         | 获取蓝牙开关状态。                                                                |
22| on(type: 'stateChange')            | 订阅蓝牙设备开关状态事件。                                                         |
23| off(type: 'stateChange')           | 取消订阅蓝牙设备开关状态事件。                                                     |
24
25
26## 主要场景开发步骤
27
28### 开启、关闭蓝牙
291. 导入所需的access模块。
302. 需要SystemCapability.Communication.Bluetooth.Core系统能力。
313. 需要申请权限ohos.permission.ACCESS_BLUETOOTH324. 开启蓝牙。
335. 关闭蓝牙。
346. 示例代码:
35
36    ```ts
37    import { access } from '@kit.ConnectivityKit';
38    import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
39
40    // 开启蓝牙
41    access.enableBluetooth();
42    access.on('stateChange', (data) => {
43      let btStateMessage = '';
44      switch (data) {
45        case 0:
46          btStateMessage += 'STATE_OFF';
47          break;
48        case 1:
49          btStateMessage += 'STATE_TURNING_ON';
50          break;
51        case 2:
52          btStateMessage += 'STATE_ON';
53          break;
54        case 3:
55          btStateMessage += 'STATE_TURNING_OFF';
56          break;
57        case 4:
58          btStateMessage += 'STATE_BLE_TURNING_ON';
59          break;
60        case 5:
61          btStateMessage += 'STATE_BLE_ON';
62          break;
63        case 6:
64          btStateMessage += 'STATE_BLE_TURNING_OFF';
65          break;
66        default:
67          btStateMessage += 'unknown status';
68          break;
69      }
70      if (btStateMessage == 'STATE_ON') {
71        access.off('stateChange');
72      }
73      console.info("bluetooth status: "  + btStateMessage);
74    })
75
76    // 关闭蓝牙
77    access.disableBluetooth();
78    access.on('stateChange', (data) => {
79      let btStateMessage = '';
80      switch (data) {
81        case 0:
82          btStateMessage += 'STATE_OFF';
83          break;
84        case 1:
85          btStateMessage += 'STATE_TURNING_ON';
86          break;
87        case 2:
88          btStateMessage += 'STATE_ON';
89          break;
90        case 3:
91          btStateMessage += 'STATE_TURNING_OFF';
92          break;
93        case 4:
94          btStateMessage += 'STATE_BLE_TURNING_ON';
95          break;
96        case 5:
97          btStateMessage += 'STATE_BLE_ON';
98          break;
99        case 6:
100          btStateMessage += 'STATE_BLE_TURNING_OFF';
101          break;
102        default:
103          btStateMessage += 'unknown status';
104          break;
105      }
106      if (btStateMessage == 'STATE_OFF') {
107        access.off('stateChange');
108      }
109      console.info("bluetooth status: " + btStateMessage);
110    })
111    ```
112
1136. 错误码请参见[蓝牙服务子系统错误码](../../reference/apis-connectivity-kit/errorcode-bluetoothManager.md)。
1147. 如何验证:
115执行开启蓝牙代码,记录日志“bluetooth status: STATE_ON”,则表示开启蓝牙成功。执行关闭蓝牙代码,记录日志“bluetooth status: STATE_OFF”,则表示蓝牙关闭成功。