![](/img/trans.png)
[英]How can I use Bluez5 DBUS API in C++ to pair and connect new devices?
[英]BlueZ5: Event when inbound pairing is complete
我正在編寫一個C ++應用程序,該應用程序管理嵌入式設備的藍牙連接。 我在Linux下通過D-Bus與BlueZ5通訊。
作為實現入站配對的第一步,我做了以下工作:
現在,我需要一個事件來告訴我新設備已配對,因此我可以信任它並接受SPP連接。 但是我還沒有在規范中找到這樣的事件( https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc )。
有這樣的事件嗎? 似乎隨着bluetoothctl發出一條消息
[NEW]設備44:55:66:11:22:33 Foo酒吧
設備配對后...
有人可以告訴我我必須聽哪個事件嗎?
還是我必須投票? 我不認為bluetoothctl輪詢會很快做出反應。
從這里
布爾值已連接[只讀]
指示當前是否連接了遠程設備。 PropertiesChanged信號指示對此狀態的更改。
添加新設備后,InterfaceAdded信號將在interface = org.freedesktop.DBus.ObjectManager上廣播。 請參閱以下使用dbus-monitor捕獲的信號。 檢查屬性已連接。
signal time=1558128293.155096 sender=:1.2 -> destination=(null destination) serial=65 path=/; interface=org.freedesktop.DBus.ObjectManager; member=InterfacesAdded
object path "/org/bluez/hci0/dev_F0_D7_AA_AA_0C_41"
array [
dict entry(
string "org.freedesktop.DBus.Introspectable"
array [
]
)
dict entry(
string "org.bluez.Device1"
array [
dict entry(
string "Address"
variant string "F0:D7:AA:AA:0C:41"
)
dict entry(
string "Name"
variant string "Moto"
)
dict entry(
string "Alias"
variant string "Moto"
)
dict entry(
string "Class"
variant uint32 5898764
)
dict entry(
string "Icon"
variant string "phone"
)
dict entry(
string "Paired"
variant boolean false
)
dict entry(
string "Trusted"
variant boolean false
)
dict entry(
string "Blocked"
variant boolean false
)
dict entry(
string "LegacyPairing"
variant boolean false
)
dict entry(
string "Connected"
variant boolean true
)
dict entry(
string "UUIDs"
variant array [
]
)
dict entry(
string "Adapter"
variant object path "/org/bluez/hci0"
)
]
)
dict entry(
string "org.freedesktop.DBus.Properties"
array [
]
)
]
如果已添加設備,則在interface = org.freedesktop.DBus.Properties上會收到PropertiesChanged信號。 見下面的截圖,它是一個斷開連接的日志,但是上面的一個可以幫助您在連接設備時接收信號。
signal time=1558128303.204016 sender=:1.2 -> destination=(null destination) serial=71 path=/org/bluez/hci0/dev_F0_D7_AA_AA_0C_41; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "org.bluez.Device1"
array [
dict entry(
string "Connected"
variant boolean false
)
]
array [
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.