首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在BlueZ上启动BLE配对

如何在BlueZ上启动BLE配对
EN

Stack Overflow用户
提问于 2015-08-14 07:32:47
回答 1查看 8K关注 0票数 3

我想启动蓝光与蓝牙低能设备的配对。虽然有一些关于如何使用GATT触发SMP程序的帖子,但如果您不想使用GATT,则没有多少可用的信息。

我的用例是,我想使用一个加密链接的蓝牙-6LoWPAN,它交换数据的L2CAP信用模式,而不是ATT/GATT。

此外,我想使用OOB模式进行SMP配对。

关于如何使用命令行或编写C程序来触发SMP配对的提示很受欢迎。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-09-20 20:21:15

我认为不使用GATT命令(仅从命令行)执行BLE配对是不可能的。其原因是LE的安全性是基于GATT行动的.换句话说,特征/服务权限决定您是否需要与设备配对(例如,要读取心率特性,设备可能要求您首先进行配对)。为此,操作将类似于:

代码语言:javascript
复制
gatttool --sec-level=high --device=00:11:22:33:44:55:66 --char-read --uuid=0x2A37

此命令将在读取特征之前先建立配对关系。

至于如何使用C程序执行此操作,您可以下载BlueZ源代码,并查看传递“秒级”选项的功能。我很快浏览了代码,并在utils.c中找到了以下内容:-

代码语言:javascript
复制
            chan = bt_io_connect(connect_cb, NULL, NULL, &tmp_err,
            BT_IO_OPT_SOURCE_BDADDR, &sba,
            BT_IO_OPT_SOURCE_TYPE, BDADDR_LE_PUBLIC,
            BT_IO_OPT_DEST_BDADDR, &dba,
            BT_IO_OPT_DEST_TYPE, dest_type,
            BT_IO_OPT_CID, ATT_CID,
            BT_IO_OPT_SEC_LEVEL, sec,
            BT_IO_OPT_INVALID);

其中sec设置为sec = BT_IO_SEC_HIGH;

我希望这能帮到你。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32004646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档