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

    文章

    8580

    浏览量

    151044
  • 蓝牙
    +关注

    关注

    114

    文章

    5812

    浏览量

    170211
  • 鸿蒙
    +关注

    关注

    57

    文章

    2345

    浏览量

    42822
  • Harmony
    +关注

    关注

    0

    文章

    53

    浏览量

    2602
收藏 人收藏

    评论

    相关推荐

    鸿蒙Flutter实战:08-如何调试代码

    # 鸿蒙Flutter实战:如何调试代码 ## 1.环境搭建 参考文章[鸿蒙Flutter实战:01-搭建开发环境](https://g
    发表于 10-23 16:29

    鸿蒙Flutter实战:07混合开发

    # 鸿蒙Flutter实战:混合开发 鸿蒙Flutter混合开发主要有两种形式。 ## 1.基于har 将flutter module
    发表于 10-23 16:00

    HarmonyOS实战开发-深度探索与打造个性化自定义组件

    今天分享一下 什么是自定义组件?及其自定义组件实战。 做过前端或者android开发的都知道自定义组件
    发表于 05-08 16:30

    HarmonyOS实战开发-如何使用全局状态保留能力弹窗来实现评论组件

    开发有帮助,我想邀请大家帮我三个小忙: 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。 关注小编,同时可以期待后续文章ing?,不定期分享原创知识。 更多鸿蒙最新技术知识点,请关注作者博客:鸿蒙
    发表于 05-07 15:06

    OpenHarmony实战开发-如何实现组件动画。

    ArkUI为组件提供了通用的属性动画和转场动画能力的同时,还为一些组件提供了默认的动画效果。例如,List的滑动动效,Button的点击动效,是组件自带的默认动画效果。在组件默认动画效
    的头像 发表于 04-28 15:49 615次阅读
    OpenHarmony<b class='flag-5'>实战</b><b class='flag-5'>开发</b>-如何实现<b class='flag-5'>组件</b>动画。

    鸿蒙实战开发学习【FaultLoggerd组件

    Faultloggerd部件是OpenHarmony中C/C++运行时崩溃临时日志的生成及管理模块。面向基于 Rust 开发的部件,Faultloggerd 提供了Rust Panic故障日志生成能力。系统开发者可以在预设的路径下找到故障日志,定位相关问题。
    的头像 发表于 03-17 20:39 505次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>实战</b><b class='flag-5'>开发</b>学习【FaultLoggerd<b class='flag-5'>组件</b>】

    鸿蒙开发实战:【性能调优组件

    性能调优组件包含系统和应用调优框架,旨在为开发者提供一套性能调优平台,可以用来分析内存、性能等问题
    的头像 发表于 03-13 15:12 436次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b>:【性能调优<b class='flag-5'>组件</b>】

    鸿蒙实战开发:【FaultLoggerd组件】讲解

    Faultloggerd部件是OpenHarmony中C/C++运行时崩溃临时日志的生成及管理模块。面向基于 Rust 开发的部件,Faultloggerd 提供了Rust Panic故障日志生成能力。系统开发者可以在预设的路径下找到故障日志,定位相关问题。
    的头像 发表于 03-12 16:22 1029次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>实战</b><b class='flag-5'>开发</b>:【FaultLoggerd<b class='flag-5'>组件</b>】讲解

    鸿蒙实战开发Camera组件:【相机】

    相机组件支持相机业务的开发开发者可以通过已开放的接口实现相机硬件的访问、操作和新功能开发,最常见的操作如:预览、拍照和录像等。
    的头像 发表于 03-08 16:20 614次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>实战</b><b class='flag-5'>开发</b>Camera<b class='flag-5'>组件</b>:【相机】

    鸿蒙实战项目开发:【短信服务】

    、OpenHarmony 多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发鸿蒙项目实战等等)鸿蒙(Harmon
    发表于 03-03 21:29

    鸿蒙ArkUI开发-Tabs组件的使用

    鸿蒙ArkUI开发-Tabs组件的使用
    的头像 发表于 01-19 16:01 1881次阅读
    <b class='flag-5'>鸿蒙</b>ArkUI<b class='flag-5'>开发</b>-Tabs<b class='flag-5'>组件</b>的使用

    鸿蒙开发实战-(ArkUI)List组件和Grid组件的使用

    一系列相同宽度的列表项,连续、多行呈现同类数据,例如图片和文本。常见的列表有线性列表(List列表)和网格布局(Grid列表): 为了帮助开发者构建包含列表的应用,ArkUI提供了List组件和Grid
    发表于 01-18 20:18

    鸿蒙开发OpenHarmony组件复用案例

    ) } }, item => item) } } } 本文主要是对鸿蒙开发基础当中的OpenHarmony技术组件复用示例, 更多鸿蒙开发
    发表于 01-15 17:37

    鸿蒙开发基础-Web组件之cookie操作

    }) ... } ... 本文章主要是对鸿蒙开发当中ArkTS语言的基础应用实战,Web组件里的cookie操作。更多的鸿蒙应用
    发表于 01-14 21:31

    鸿蒙基础开发实战-(ArkTS)像素转换

    的使用。通过像素转换案例,向开发者讲解了如何使用像素单位设置组件的尺寸、字体的大小以及不同像素单位之间的转换方法。更多鸿蒙4.0的学习,可以前往主页学习或前往《鸿蒙4.0
    发表于 01-11 16:53