0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发实战:【蓝牙组件】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-03-13 17:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

简介

蓝牙服务组件为设备提供接入与使用Bluetooth的相关接口,包括BLE设备gatt相关的操作,以及BLE广播、扫描等功能。

目录

/foundation/communication/bluetooth
├── interfaces                               # 接口代码
│    └── innerkits                           # 系统服务接口存放目录
│        ├── native_c                        # C接口存放目录
│        │   └── include                     # C接口定义目录
│        └── native_cpp                      # C++接口存放目录
│── sa_profile                               # 蓝牙服务定义目录
│── services                                 # 蓝牙服务代码目录
└── LICENSE                                  # 版权声明文件

约束

蓝牙服务组件使用C语言编写。

说明

现在提供的是BLE相关接口及GAP基本开关蓝牙的接口,其它接口暂不提供。

标准系统使用说明

标准系统提供C接口定义及服务和协议栈的代码,目前提供的只有BLE相关的接口,包括BLE设备gatt相关的操作,以及BLE广播、扫描等功能,其它A2DP,AVRCP,HFP等相关接口在后续增量发布。

标准系统使用目录如下:

轻量或小型系统使用说明

轻量或小型系统只提供C接口定义,目前只有BLE相关接口,包括BLE设备gatt相关的操作,以及BLE广播、扫描等功能,其它A2DP,AVRCP,HFP等相关接口在后续增量发布。

轻量或小型系统使用目录如下:

interfaces/innerkits/native_c/include

C接口使用说明

  • 打开/关闭蓝牙:
/* 打开传统蓝牙 */
bool EnableBt(void);
/* 关闭传统蓝牙 */
bool DisableBt(void);
/* 打开低功耗蓝牙 */
bool EnableBle(void);
/* 关闭低功耗蓝牙 */
bool DisableBle(void);
  • 获取蓝牙状态
/* 获取传统蓝牙状态 */
int GetBtState();
/* 判断低功耗蓝牙状态 */
bool IsBleEnabled();
  • 获取本端Mac地址
/* 获取mac地址 */
bool GetLocalAddr(unsigned char *mac, unsigned int len);
  • 设置本端设备名称
/* 设置本端设备名称 */
bool SetLocalName(unsigned char *localName, unsigned char length);
  • 设备需要完成以下接口的开发步骤,以使能Gatt server功能并开启服务:
/* 初始化蓝牙协议栈 */
int InitBtStack(void);
int EnableBtStack(void);
/* 注册应用,appUuid由应用提供  */
int BleGattsRegister(BtUuid appUuid);
/* 添加服务 */
int BleGattsAddService(int serverId, BtUuid srvcUuid, bool isPrimary, int number);
/* 添加特征值 */
int BleGattsAddCharacteristic(int serverId, int srvcHandle, BtUuid characUuid, int properties, int permissions);
/* 添加描述符 */
int BleGattsAddDescriptor(int serverId, int srvcHandle, BtUuid descUuid, int permissions);
/* 开始服务 */
int BleGattsStartService(int serverId, int srvcHandle);
  • 设备需要完成以下接口的开发步骤,以使能BLE广播的发送:
/* 设置广播数据 */
int BleSetAdvData(int advId, const BleConfigAdvData *data);
/* 开始发送广播 */
int BleStartAdv(int advId, const BleAdvParams *param);
  • 若需要扫描功能,设备需要完成以下接口的开发步骤,以使能BLE扫描功能:
/* 设置扫描参数 */
int BleSetScanParameters(int clientId, BleScanParams *param);
/* 开始扫描 */
int BleStartScan(void);

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    9443

    浏览量

    156127
  • 蓝牙
    +关注

    关注

    119

    文章

    6221

    浏览量

    177515
  • 鸿蒙
    +关注

    关注

    60

    文章

    2858

    浏览量

    45346
  • Harmony
    +关注

    关注

    0

    文章

    108

    浏览量

    3489
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【HarmonyOS 5】鸿蒙页面和组件生命周期函数

    【HarmonyOS 5】鸿蒙页面和组件生命周期函数 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财
    的头像 发表于 07-11 18:24 787次阅读

    【HarmonyOS 5】金融应用开发鸿蒙组件实践

    【HarmonyOS 5】金融应用开发鸿蒙组件实践 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##
    的头像 发表于 07-11 18:20 744次阅读
    【HarmonyOS 5】金融应用<b class='flag-5'>开发</b><b class='flag-5'>鸿蒙</b><b class='flag-5'>组件</b>实践

    鸿蒙5开发宝藏案例分享---一多开发实例(音乐)

    各位开发者小伙伴们好呀!今天咱们来点硬核干货!最近在鸿蒙文档中心挖到一座“金矿”——官方竟然暗藏了100+实战案例,从分布式架构到交互动效优化应有尽有!这些案例不仅藏着华为工程师的私房技巧,还直接
    的头像 发表于 06-30 11:54 616次阅读

    鸿蒙5开发宝藏案例分享---Swiper组件性能优化实战

    鸿蒙宝藏:Swiper组件性能优化实战,告别卡顿丢帧! 大家好!最近在鸿蒙开发时,偶然发现了官方文档里埋藏的 性能优化宝藏案例 ,尤其是&l
    发表于 06-12 17:53

    鸿蒙5开发宝藏案例分享---瀑布流优化实战分享

    鸿蒙瀑布流性能优化实战:告别卡顿的宝藏指南! 大家好!最近在鸿蒙文档里挖到一个 性能优化宝藏库 ,原来官方早就准备好了各种场景的最佳实践!今天重点分享「瀑布流加载慢丢帧」的解决方案,附完整代码解析
    发表于 06-12 17:41

    鸿蒙5开发宝藏案例分享---性能优化案例解析

    鸿蒙性能优化宝藏指南:实战工具与代码案例解析 大家好呀!今天在翻鸿蒙开发者文档时,意外挖到一个 性能优化宝藏库 ——原来官方早就提供了超多实用工具和案例,但很多小伙伴可能没发现!这篇就
    发表于 06-12 16:36

    鸿蒙5开发宝藏案例分享---埋点开发实战指南

    鸿蒙埋点开发宝藏指南:官方案例实战解析,轻松搞定数据追踪! 大家好呀!我是HarmonyOS开发路上的探索者。最近在折腾应用埋点时,意外发现了鸿蒙
    发表于 06-12 16:30

    鸿蒙5开发宝藏案例分享---切面编程实战揭秘

    鸿蒙切面编程(AOP)实战指南:隐藏的宝藏功能大揭秘! 大家好!今天在翻鸿蒙开发者文档时,意外发现了官方埋藏的「切面编程」宝藏案例!实际开发
    发表于 06-12 16:21

    鸿蒙5开发宝藏案例分享---应用架构实战技巧

    大家好! 今天咱们聊聊鸿蒙开发中那些“官方文档提了但实际开发难找”的架构设计技巧。结合官方文档,我会用 真实代码案例+通俗讲解 ,帮你把分层架构和线程通信落地到项目里,告别“理论会了,代码不会
    发表于 06-12 16:14

    鸿蒙5开发宝藏案例分享---Pura X开发案例分享

    ?** 鸿蒙宝藏案例分享:Pura X 外屏开发实战解析** 大家好!我是你们的鸿蒙开发小伙伴。今天在翻阅官方文档时,意外发现了华为藏着的\
    发表于 06-12 11:47

    HarmonyOS实战组件化项目搭建

    前言 鸿蒙应用开发已经成为互联网新的风口,开发鸿蒙软件已经成为今年工作的核心目标。在软件开发过程中,对于复杂度较大,功能较多的软件都会采用
    的头像 发表于 06-09 14:58 505次阅读
    HarmonyOS<b class='flag-5'>实战</b>:<b class='flag-5'>组件</b>化项目搭建

    鸿蒙5开发宝藏案例分享---一多开发实例(即时通讯)

    鸿蒙\"一多\"开发宝藏指南:原来官方案例还能这么玩!✨ 大家好呀!我是刚在鸿蒙开发路上踩完坑的某不知名码农,今天要给大家分享一个重大发现——原来HarmonyOS官方早就给我
    发表于 06-03 16:01

    鸿蒙5开发宝藏案例分享---一多分栏开发实践

    ?【HarmonyOS开发者的宝藏指南】一次搞定多设备分栏布局,原来还能这么玩! 大家好呀!今天在鸿蒙社区挖到一个超实用的大宝藏——原来官方早就藏了一堆分栏布局的实战案例!作为被多端适配折磨
    发表于 06-03 12:03

    开源啦!!!基于鸿蒙ArkTS封装的图表组件《McCharts》,大家快来一起共创

    的地方请大家高抬贵手,宽容一下,谢谢。 这次主要是给大家带来一个重磅消息,就是我自己使用鸿蒙ArkTS语法开发的图表组件今日正式开源了。为什么?原因有两点吧! 鸿蒙是国产的操作系统,
    发表于 03-15 15:21

    鸿蒙Flutter实战:14-现有Flutter 项目支持鸿蒙 II

    分别安装官方的3.22版本,以及鸿蒙社区的 3.22.0 版本 3.搭建 Flutter鸿蒙开发环境 参考文章《鸿蒙Flutter实战:0
    发表于 12-26 14:59