无法通过 DBus 在 Bluez 中设置 SSP 模式
Can't set SSP mode in Bluez through DBus
我需要以编程方式更改安全简单配对模式,但我不知道如何使用 DBus 命令在 Bluez 中打开或关闭 SSP 模式。
使用 btmgmt
实用程序,我只是这样做:
btmgmt ssp off
btmgmt ssp on
好的,但我需要的是 DBus 方法调用,我可以将其包含在我的应用程序中。
但是Bluez documentation似乎没有提到任何改变SSP模式的DBus方法。
有人知道怎么做吗? (一个 gdbus call
或 dbus-send
的例子就很好)。
或者这是不可能的?
您无法使用 DBus 执行此操作。 Bluez 对此没有 DBus API。您需要使用蓝牙管理套接字接口来切换 SSP 模式,或者您可以使用 bluez 弃用的 HCI 接口来执行此操作。
要了解如何使用蓝牙管理套接字,请参阅 bluez-5.X 源目录中的 bluez-5-X/doc/mgmt-api.txt 文件。切换 SSP 的命令代码是 0x000B
。实际上,这就是 btmgmt
工具 enables/disables SSP 的方式。它使用蓝牙管理套接字。在 bluez-5.X/tools/btmgmt.c 中搜索关键字 ssp
并查看示例 C 代码。
您也可以使用已弃用的 hci API(不推荐)来执行此操作。参见 bluez-5-X/lib/hci.c.
中的 hci_write_simple_pairing_mode
方法
我需要以编程方式更改安全简单配对模式,但我不知道如何使用 DBus 命令在 Bluez 中打开或关闭 SSP 模式。
使用 btmgmt
实用程序,我只是这样做:
btmgmt ssp off
btmgmt ssp on
好的,但我需要的是 DBus 方法调用,我可以将其包含在我的应用程序中。
但是Bluez documentation似乎没有提到任何改变SSP模式的DBus方法。
有人知道怎么做吗? (一个 gdbus call
或 dbus-send
的例子就很好)。
或者这是不可能的?
您无法使用 DBus 执行此操作。 Bluez 对此没有 DBus API。您需要使用蓝牙管理套接字接口来切换 SSP 模式,或者您可以使用 bluez 弃用的 HCI 接口来执行此操作。
要了解如何使用蓝牙管理套接字,请参阅 bluez-5.X 源目录中的 bluez-5-X/doc/mgmt-api.txt 文件。切换 SSP 的命令代码是 0x000B
。实际上,这就是 btmgmt
工具 enables/disables SSP 的方式。它使用蓝牙管理套接字。在 bluez-5.X/tools/btmgmt.c 中搜索关键字 ssp
并查看示例 C 代码。
您也可以使用已弃用的 hci API(不推荐)来执行此操作。参见 bluez-5-X/lib/hci.c.
中的hci_write_simple_pairing_mode
方法