Estou tentando encontrar comandos para definir e obter volume de fones de ouvido bluetooth no terminal. Existem métodos VolumeUp e VolumeDown disponíveis na interface org.bluez.MediaControl1:
$ dbus-send --print-reply --system --dest=org.bluez \
/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX org.bluez.MediaControl1.VolumeUp
dev_XX_XX_XX_XX_XX_XX deve ser substituído pelo endereço MAC real e fdYY é regenerado sempre que os fones de ouvido estiverem conectados; há um software d-feet que ajuda a encontrar as propriedades do dbus
Esses métodos funcionam, mas de acordo com o link A interface do MediaControl está obsoleta e o MediaTransport deve ser usado em seu lugar.
Quando usar o Introspect para listar as propriedades disponíveis:
$ dbus-send --print-reply --system --dest=org.bluez \
/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/fdYY \
org.freedesktop.DBus.Introspectable.Introspect
Eu recebi resposta , que contém:
<interface name="org.bluez.MediaTransport1">
...
<property name="Volume" type="q" access="readwrite" />
</interface>
Mas ao tentar listar todas as propriedades, o Volume não está disponível:
$ dbus-send --print-reply --system --dest=org.bluez \
/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/fdYY \
org.freedesktop.DBus.Properties.GetAll \
string:"org.bluez.MediaTransport1"
array [
dict entry(
string "Device"
variant object path "/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX"
)
dict entry(
string "UUID"
variant string "0000110..."
)
dict entry(
string "Codec"
variant byte 0
)
dict entry(
string "Configuration"
variant array of bytes [
21 15 02 35
]
)
dict entry(
string "State"
variant string "active"
)
dict entry(
string "Delay"
variant uint16 1500
)
]
Eu também não consigo definir o volume:
$ dbus-send --print-reply --system --dest=org.bluez \
/org/bluez/hci0/dev_2C_41_A1_02_E7_1C/fd29 \
org.freedesktop.DBus.Properties.Get \
string:"org.bluez.MediaTransport1" "string:Volume"
Error org.freedesktop.DBus.Error.InvalidArgs: No such property 'Volume'
Qual é a maneira correta de configurar e ler o volume do dispositivo bluetooth?