台北市网站建设_网站建设公司_MongoDB_seo优化
2026/1/9 8:21:20 网站建设 项目流程

鸿蒙学习实战之路-蓝牙设置完全指南

最近好多朋友问我:“西兰花啊,我想在鸿蒙应用里搞个蓝牙功能,咋开头啊?” 害,这问题可问对人了!蓝牙这玩意儿就像咱们厨房的抽油烟机,要用的时候得打开,用完了还得记得关,不然费电不说还可能影响其他功能~

今天这篇,我就手把手带你把鸿蒙应用的蓝牙开关玩明白,从权限申请到状态监听再到开关控制,全程不踩坑~


一、先配齐蓝牙开发的"锅碗瓢盆"

要搞蓝牙开发,第一步当然是配齐必要的权限和依赖。就像做饭前得先把锅碗瓢盆准备好一样~

1. 申请蓝牙权限

首先得在module.json5文件里声明蓝牙权限,不然应用连碰都碰不到蓝牙功能:

{"module":{"requestPermissions":[{"name":"ohos.permission.ACCESS_BLUETOOTH"}]}}

🥦西兰花警告
权限可不能忘啊!我有个朋友第一次搞蓝牙开发,折腾了一下午代码,结果发现是忘了加权限,白忙活一场!

2. 导入蓝牙API模块

接下来咱们得把蓝牙相关的API模块导入进来,就像做饭前得把食材拿出来一样:

import{access}from'@kit.ConnectivityKit';import{BusinessError}from'@kit.BasicServicesKit';

二、装个"蓝牙状态监视器"

要想控制蓝牙开关,首先得知道它现在是开着还是关着。咱们可以订阅蓝牙的状态变化事件,就像装了个监视器一样,蓝牙状态一有变化咱们就能知道~

1. 定义状态变化回调函数

咱们先写个函数,专门用来处理蓝牙状态变化:

// 定义蓝牙开关状态变化的回调函数functionon蓝牙状态变化(状态:access.BluetoothState){let状态描述='';switch(状态){caseaccess.BluetoothState.STATE_OFF:状态描述='蓝牙已关闭';break;caseaccess.BluetoothState.STATE_TURNING_ON:状态描述='蓝牙正在开启...';break;caseaccess.BluetoothState.STATE_ON:状态描述='蓝牙已开启,可以使用了!';break;caseaccess.BluetoothState.STATE_TURNING_OFF:状态描述='蓝牙正在关闭...';break;caseaccess.BluetoothState.STATE_BLE_TURNING_ON:状态描述='BLE正在开启...';break;caseaccess.BluetoothState.STATE_BLE_ON:状态描述='BLE已开启';break;caseaccess.BluetoothState.STATE_BLE_TURNING_OFF:状态描述='BLE正在关闭...';break;default:状态描述='未知状态';break;}console.info('当前蓝牙状态: '+状态描述);}

2. 订阅状态变化事件

有了回调函数,咱们得把它和蓝牙状态变化事件绑起来,这样才能收到通知:

try{// 发起订阅,蓝牙状态一变化就会调用on蓝牙状态变化函数access.on('stateChange',on蓝牙状态变化);}catch(err){console.error('订阅蓝牙状态失败: '+(errasBusinessError).code+', '+(errasBusinessError).message);}

🥦西兰花小贴士
蓝牙状态有好几种,其中最重要的是STATE_OFF(已关闭)和STATE_ON(已开启)。只有在STATE_ON状态下,咱们才能使用蓝牙的其他功能哦~


三、蓝牙开关"手动挡"操作

现在监视器装好了,咱们就可以手动控制蓝牙开关了。就像开车一样,想快就踩油门,想停就踩刹车~

1. 开启蓝牙

当咱们需要使用蓝牙功能时,可以先检查蓝牙状态,如果是关闭的就把它打开:

try{// 主动获取蓝牙当前的开关状态let当前状态=access.getState();if(当前状态==access.BluetoothState.STATE_OFF){// 若蓝牙是关闭的,则主动开启蓝牙access.enableBluetooth();}}catch(err){console.error('开启蓝牙失败: '+(errasBusinessError).code+', '+(errasBusinessError).message);}

当咱们调用enableBluetooth()时,系统会弹出一个对话框,问用户是否同意开启蓝牙,就像这样:

2. 关闭蓝牙

用完蓝牙后,咱们应该主动把它关掉,就像用完抽油烟机要记得关一样,这样能节省设备电量:

try{// 主动获取蓝牙当前的开关状态let当前状态=access.getState();if(当前状态==access.BluetoothState.STATE_ON){// 若蓝牙是开启的,则主动关闭蓝牙access.disableBluetooth();}}catch(err){console.error('关闭蓝牙失败: '+(errasBusinessError).code+', '+(errasBusinessError).message);}

同样地,调用disableBluetooth()时,系统也会弹出对话框让用户确认:


四、把蓝牙操作封装成"工具箱"

为了方便使用,咱们可以把刚才的所有功能封装成一个蓝牙管理器类,就像把常用工具都放进一个工具箱里一样,想用的时候直接拿出来就行:

import{access}from'@kit.ConnectivityKit';import{BusinessError}from'@kit.BasicServicesKit';exportclass蓝牙管理器{// 蓝牙状态变化回调函数状态变化回调=(状态:access.BluetoothState)=>{let状态描述='';switch(状态){caseaccess.BluetoothState.STATE_OFF:状态描述='蓝牙已关闭';break;caseaccess.BluetoothState.STATE_TURNING_ON:状态描述='蓝牙正在开启...';break;caseaccess.BluetoothState.STATE_ON:状态描述='蓝牙已开启,可以使用了!';break;caseaccess.BluetoothState.STATE_TURNING_OFF:状态描述='蓝牙正在关闭...';break;caseaccess.BluetoothState.STATE_BLE_TURNING_ON:状态描述='BLE正在开启...';break;caseaccess.BluetoothState.STATE_BLE_ON:状态描述='BLE已开启';break;caseaccess.BluetoothState.STATE_BLE_TURNING_OFF:状态描述='BLE正在关闭...';break;default:状态描述='未知状态';break;}console.info('当前蓝牙状态: '+状态描述);};// 初始化蓝牙管理器public初始化(){try{// 订阅蓝牙状态变化access.on('stateChange',this.状态变化回调);}catch(err){console.error('订阅蓝牙状态失败: '+(errasBusinessError).code+', '+(errasBusinessError).message);}}// 开启蓝牙public开启蓝牙(){try{// 主动获取蓝牙当前的开关状态let当前状态=access.getState();if(当前状态==access.BluetoothState.STATE_OFF){// 若蓝牙是关闭的,则主动开启蓝牙access.enableBluetooth();}}catch(err){console.error('开启蓝牙失败: '+(errasBusinessError).code+', '+(errasBusinessError).message);}}// 关闭蓝牙public关闭蓝牙(){try{// 主动获取蓝牙当前的开关状态let当前状态=access.getState();if(当前状态==access.BluetoothState.STATE_ON){// 若蓝牙是开启的,则主动关闭蓝牙access.disableBluetooth();}}catch(err){console.error('关闭蓝牙失败: '+(errasBusinessError).code+', '+(errasBusinessError).message);}}// 销毁蓝牙管理器public销毁(){try{// 取消订阅蓝牙状态变化access.off('stateChange',this.状态变化回调);}catch(err){console.error('取消订阅蓝牙状态失败: '+(errasBusinessError).code+', '+(errasBusinessError).message);}}}// 创建一个蓝牙管理器实例const蓝牙工具=new蓝牙管理器();exportdefault蓝牙工具;

现在咱们就可以方便地使用这个蓝牙管理器了:

import蓝牙工具from'./BluetoothManager';// 初始化蓝牙蓝牙工具.初始化();// 需要使用蓝牙时开启蓝牙工具.开启蓝牙();// 用完蓝牙后关闭蓝牙工具.关闭蓝牙();// 页面销毁时记得销毁管理器蓝牙工具.销毁();

🥦西兰花小贴士
封装成工具类的好处是可以重复使用,而且代码结构更清晰。就像家里的工具箱一样,下次要用的时候直接拿出来就行,不用再重新找工具~


五、总结一下

今天咱们把鸿蒙应用的蓝牙设置功能彻底搞明白了:

  1. 权限申请:在module.json5里加ohos.permission.ACCESS_BLUETOOTH权限
  2. API导入:导入accessBusinessError模块
  3. 状态监听:订阅stateChange事件,实时获取蓝牙状态
  4. 开关控制:用enableBluetooth()disableBluetooth()控制蓝牙开关
  5. 封装工具类:把所有功能封装成蓝牙管理器,方便使用和维护

📚 推荐资料:

  • 鸿蒙蓝牙开发官方文档
  • 蓝牙API参考文档
  • 权限声明官方指南

我是盐焗西兰花,
不教理论,只给你能跑的代码和避坑指南。
下期见!🥦

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询