Фон: я использую мою гарнитуру Bluetooth в качестве аудио выхода. Мне удалось заставить его работать с помощью длинного списка инструкций в документации сообщества BluetoothHeadset , и я автоматизировал процесс активации гарнитуры в качестве аудиовыхода по умолчанию в сценарий, благодаря другому вопросу .
Однако, поскольку я использую гарнитуру Bluetooth с телефоном и компьютером (а гарнитура не поддерживает два входных соединения), чтобы телефон не «крал» соединение при включенной трубке, я заставляю гарнитуру режим обнаружения при подключении к компьютеру (телефон подключается к нему автоматически).
Поэтому, несмотря на то, что гарнитура подключена нормально и при автоматическом подключении по «обычному» сценарию, мне всегда нужно использовать маленький значок Bluetooth в области уведомлений, чтобы фактически подключиться к моему устройству (см. Скриншот).
Чего я хочу избежать: этот графический интерфейс для подключения к известному и сопряженному устройству Bluetooth:
Что я хочу вместо этого: я бы хотел, чтобы блютуз делал именно то, что щелкает элемент подключения в графическом интерфейсе, только с помощью командной строки. Я хочу использовать командную строку, чтобы сделать одно нажатие клавиши для действия, и не нужно было бы перемещаться по GUI каждый раз, когда я хочу установить соединение с устройством.
Вопрос: как я могу попытаться подключиться к определенному, известному и сопряженному устройству Bluetooth из командной строки?
Следующий вопрос: как узнать, было ли соединение успешным или нет?
источник
Ответы:
Bluetooth-демон
При установке по умолчанию демон ( bluetoothd ) запускается в фоновом режиме (запускается из файла
/etc/init.d/bluetooth
). Этот демон заботится о распознавании и подключении к известным устройствам Bluetooth и может быть сконфигурирован с помощью файлов конфигурации в/etc/bluetooth
. Для автоматического подключения гарнитуры следующая строкаaudio.conf
должна быть закомментирована (удалить#
):Чтобы перезапустить тип демона
sudo /etc/init.d/bluetooth restart
.Примечание. Использование инструмента командной строки
sudo hcitool cc <MAC-Adress>
не привело к стабильному подключению к известному устройству в тестовой среде здесь, когда демон работал.DBus
Чтобы подключить отключенную, но физически присутствующую и сопряженную гарнитуру, мы можем использовать D-Bus из сценария. Вот пример в Python:
Если у нас есть более одного устройства Bluetooth, нам
devicePath
, конечно, придется соответствующим образом адаптировать . Пример выше соединитHeadset
. Измените интерфейс на другой протокол для любой другой службы (напримерAudioSink
).Pulseaudio
Если вам известен MAC-адрес вашего устройства Bluetooth, вы можете подключить его в качестве выходного приемника для pulseaudio следующим образом:
Где xx_xx_xx_xx_xx_xx - это MAC-адрес (замените «:» на «_», чтобы pulseaudio мог его распознать).
Смотрите также этот ответ для более подробной информации.
источник
Sink bluez_sink.xx_xx_xx_xx_xx_xx does not exist.
пробую только в верхнем и нижнем регистре.bt
илиblue
указано вpacmd list-sinks
. (Сообщается только о 1Я использую этот скрипт для подключения моего аудиоустройства Bluetooth. Если ваша гарнитура уже сопряжена, вы должны иметь возможность подключить гарнитуру таким же образом, используя org.bluez.Headset.Connect / Disconnect вместо org.bluez.Audiosink.Connect / Disconnect .
НТН!
источник
16.04
, спасибо! другие, не забудьте передатьon
опцию сценарию!Я использую i3 в качестве оконного менеджера, поэтому у меня нет значка Bluetooth на панели задач. По какой-то причине кнопка проверки в настройках единства не чувствительна, и поэтому мне нужен способ делать это время от времени, когда мои наушники не подключаются.
Кажется , что
bluez
уже изменили свой Dbus API . Ответ, использующийorg.bluez.Manager
больше, кажется, не работает. Вместо этого рекомендуется использоватьObjectManager
.Вот обновленный скрипт Python, который подключит первую обнаруженную неподключенную гарнитуру Bluetooth (предположительно, список включает все сопряженные устройства?):
этот пример, как и другой пример в этой теме, использует
dbus
пакет python. На Ubuntu 16.04 я установил это черезapt-get install python-dbus
.Если вы хотите соответствовать другим критериям, этот документ отображает список свойств, которые могут быть запрошены через dbus.
У меня сохранен этот скрипт,
~/.local/bin/bt-connect-headset
который находится на моем,PATH
чтобы я мог выполнить его из программы запуска i3. Сделайте его исполняемым (chmod +x bt-connect-headset
), если вы планируете использовать его в качестве команды.Этот сценарий был протестирован только на последней версии Ubuntu 16.04 от 28.09.2008.
источник
2360344
вместо0x240404
.Disconnect()
метод. Я не пробовал, но это, вероятно, безопасная ставка;).first unconnected bluetooth headset
: всегда ли он будет использовать гарнитуру (если она включена) перед другим устройством, таким как колонки Bluetooth (независимо от положения в списке)? Вот что происходит в моем случае. - Кроме того, чтобы отключиться, я не могу сделать это, просто изменив последнюю строку наadapter.Disconnect()
.)Попробовав некоторые из вышеперечисленных (сценарии не работают для меня), я нашел следующее решение.
Сначала выясните MAC-адрес устройства, к которому вы хотите подключиться
это войдет в оболочку и перечислит все доступные устройства с адресом. («выйти», чтобы выйти из оболочки и вернуться к приглашению)
Затем подключитесь к устройству Bluetooth: XX: XX: XX: XX: XX: XX:
отключить
искал это довольно долго - казалось, ничего не получалось, я почувствовал такое облегчение, когда узнал. Думаю, что другие тоже захотят узнать об этом. :))
источник
~$ bluetoothctl Agent registered [UE BOOM 2]#
. Тогдаdisconnect "UE BOOM 2" Device UE BOOM 2 not available
.bluetoothctl
? Вам необходимо ввести команды с MAC-адресом устройства - комбинацией значений HEX в формате XX: XX: XX: XX: XX: XX, где X - это буква или цифра.echo -e 'connect CC:AF:78:AF:59:03' | bluetoothctl
получить:Agent registered [bluetooth]# connect CC:AF:78:AF:59:03 Device CC:AF:78:AF:59:03 not available