特定のデバイスが接続されていることを確認するにはどうすればよいですか。org.bluez.AudioSource GetProperty を使用して私は c と DBus を使用しています。
1 に答える
BlueZ D-BUS API
BlueZ のシグナルとクエリ情報のリッスンに関連するすべての貴重なドキュメントである を調べていると思います。フォルダー内の任意の BlueZ ソースで見つけることができdoc/
ます。
デバイスが接続されているかどうかを確認するには、最初にコンピューター上のすべての Bluetooth デバイスと D-BUS を使用してそれらのパスを取得する必要があります。Google を使用してこれに関する多くの例を簡単に見つけることができるため、C ドキュメントは提供しません。代わりに、そのような情報を取得するためにどのような D-BUS 呼び出しを行うことができるかを示しますdbus-send
。
デバイス リストを取得します。
dbus-send --system \
--dest=org.bluez \
--print-reply / \
org.bluez.Manager.GetProperties
これは、アダプターの配列とそのパスを返します。
これらのパスを取得したら、アダプターとペアリングされたすべての Bluetooth デバイスのリストを取得できます。
ペアリングされたデバイスを取得します。
dbus-send --system \
--print-reply \
--dest=org.bluez \
/org/bluez/{pid}/hci0 \
org.bluez.Adapter.GetProperties
Devices
これにより、配列フィールド 内のペアリングされたデバイスのリストが表示されます。
Bluetooth アダプターにペアリングされたデバイスのリストを取得したら、それが AudioSource インターフェイスに接続されているかどうかを確認できます。
AudioSource インターフェイスに接続されているデバイスを取得します。
dbus-send --system \
--print-reply \
--dest=org.bluez \
/org/bluez/{pid}/hci0/dev_XX_XX_XX_XX_XX_XX \
org.bluez.AudioSource.GetProperties
dbus-send
D-BUS C API は少しわかりにくく、使いにくいため、最初に を使用して d-bus 呼び出しを試す方が便利だと思います。