无法通过DBus在Bluez中设置SSP模式

时间:2018-02-09 13:06:22

标签: bluetooth dbus bluez gdbus ssp

我需要以编程方式更改安全简单配对模式,但我无法弄清楚如何使用DBus命令在Bluez中开启或关闭SSP模式。

使用btmgmt实用程序,我只是这样做:

btmgmt ssp off
btmgmt ssp on

好的,但我需要的是 DBus方法调用,我可以将其包含在我的应用程序中。

但是Bluez documentation似乎没有提到任何更改SSP模式的DBus方法。

有谁知道怎么做? (gdbus calldbus-send示例会很棒。

或者这是不可能的?

1 个答案:

答案 0 :(得分:1)

使用DBus无法做到这一点。 Bluez没有这方面的DBus API。您需要使用蓝牙管理套接字接口来切换SSP模式,或者您可以使用bluez弃用的HCI接口来执行此操作。

要了解如何使用蓝牙管理套接字,请参阅bluez-5.X源目录中的 bluez-5-X / doc / mgmt-api.txt 文件。切换SSP的命令代码为0x000B。实际上,这是btmgmt工具启用/禁用SSP的方式。它使用蓝牙管理插座。在 bluez-5.X / tools / btmgmt.c 中搜索关键字ssp,然后查看示例C代码。

您也可以使用不推荐使用的hci API(不推荐)。请参阅 bluez-5-X / lib / hci.c 中的hci_write_simple_pairing_mode方法。