daemon Bluetooth
Na instalação padrão, um daemon ( bluetoothd ) é executado em segundo plano (executado a partir do arquivo /etc/init.d/bluetooth
). Esse daemon toma cuidado ao reconhecer e conectar-se a dispositivos bluetooth conhecidos e pode ser cofigurado com arquivos de configuração em /etc/bluetooth
. Para autoconectar um fone de ouvido, a seguinte linha em audio.conf
deve ser descomentada (remover #
):
AutoConnect=true
Para reiniciar o tipo de daemon sudo /etc/init.d/bluetooth restart
.
Observação: O uso da ferramenta de linha de comando sudo hcitool cc <MAC-Adress>
não levou a uma conexão estável com um dispositivo conhecido no ambiente de teste aqui quando o daemon estava em execução.
DBus
Para conectar um fone de ouvido desconectado, mas presente fisicamente e emparelhado, podemos usar o D-Bus a partir de um script . Aqui está um exemplo em python:
#!/usr/bin/python
# Toggles headset connection
import dbus
from dbus.mainloop.glib import DBusGMainLoop
dbus_loop = DBusGMainLoop()
bus = dbus.SystemBus(mainloop=dbus_loop)
#Get dbus interface for headset
manager = bus.get_object('org.bluez', '/')
iface_m = dbus.Interface(manager, 'org.bluez.Manager')
adapterPath = iface_m.DefaultAdapter()
adapter = bus.get_object('org.bluez', adapterPath)
iface_a = dbus.Interface(adapter, 'org.bluez.Adapter')
devicePath = iface_a.ListDevices()[0] # assuming first device
device = bus.get_object('org.bluez', devicePath)
iface_h = dbus.Interface(device, 'org.bluez.Headset')
#Check state of connection
connected = iface_h.IsConnected()
print 'Toggling connection. Please wait'
# toggle connection
if not connected:
try:
iface_h.Connect()
print 'Connecting: ', devicePath
except:
print 'Device not found'
else:
iface_h.Disconnect()
print 'Disconnecting: ', devicePath
Caso tenhamos mais de um dispositivo Bluetooth, teremos que adaptar o devicePath
apropriadamente, é claro. O exemplo acima conectará um Headset
. Altere a interface para um protocolo diferente para qualquer outro serviço (por exemplo, AudioSink
).
Pulseaudio
Se você souber o endereço MAC do seu dispositivo Bluetooth, poderá conectá-lo como um coletor de saída para o pulseaudio:
pacmd set-default-sink bluez_sink.xx_xx_xx_xx_xx_xx
Onde xx_xx_xx_xx_xx_xx é o endereço MAC (substitua ':' por '_' para que o pulseaudio o reconheça).
Veja também esta resposta para mais detalhes.