Pytanie:
Jak wybrać urządzenie Bluetooth za pomocą wiersza poleceń?
nachocab
2016-04-29 05:57:14 UTC
view on stackexchange narkive permalink

Mam dwa trackpady Bluetooth, jeden w pracy i jeden w domu.Czy istnieje sposób, aby wybrać jedną lub drugą z wiersza poleceń.Mój bieżący przepływ pracy przechodzi do menu bluetooth, najechania kursorem na dom lub biuro i kliknięciu Połącz , ale chciałbym móc to zrobić z terminala.

[Oto odpowiedź przy użyciu Applescipt niż wywoływanie go z wiersza poleceń] (http://stackoverflow.com/questions/17519804/connect-to-bluetooth-device-iphone-via-command-line-on-macosx) - czy towystarczająco dobry?
Czy możesz wyjaśnić swoją odpowiedź, abyśmy wiedzieli, czego już próbowałeś w wierszu poleceń?W przeciwnym razie możesz otrzymać wiele zmarnowanych sugestii / odpowiedzi.Ponadto, jeśli jest to istotne, możesz chcieć rozwinąć, dlaczego chcesz połączyć się przez terminal - pytam, ponieważ jeśli ma to obejść, zobacz rodzaj problemu, mogą istnieć inne lepsze opcje obejścia tego zamiast korzystania z terminala.
Pięć odpowiedzi:
luckman212
2019-03-03 00:20:56 UTC
view on stackexchange narkive permalink

Ta aplikacja CLI typu open source BluetoothConnector wydaje się dobrym rozwiązaniem.Przetestowałem i potwierdziłem, że działa tak niedawno, jak macOS 10.15.2.

Jest dostępny na GitHub, a także w Homebrew:

  $ brew zainstaluj złącze bluetooth
$ BluetoothConnector --connect 00-11-22-33-44-55 --notify
$ BluetoothConnector - rozłącz 00-11-22-33-44-55
 
Ale nie ma wykrywania nowych urządzeń :(
nachocab
2016-05-04 04:56:41 UTC
view on stackexchange narkive permalink

Skończyło się na tym, że wybrałem zmodyfikowaną wersję tej odpowiedzi i utworzyłem dwa pliki, jeden z „Home Trackpad”, a drugi z „Office Trackpad”.Działa, ale ukończenie zajmuje kilka sekund

  powiedz aplikacji "Zdarzenia systemowe", aby nakazała procesowi "SystemUIServer" ustawić bt na (pierwszy element paska menu, którego opis to "bluetooth") menupasek 1 kliknij bt tell (pierwsza pozycja menu o tytule „Home Trackpad”) menu bt kliknij menu tell menu 1 jeśli istnieje pozycja menu „Połącz” kliknij pozycję menu „Połącz” powrót „Łączenie ...” w przeciwnym razie kliknij bt -zamknij główne menu, aby posprzątać po naszym powrocie „Brak przycisku połączenia; czy jest już podłączony?”end if end tell end tellend tell  
Użyłem powyższego kodu.Jedna uwaga, jeśli nazwa Twojego urządzenia ma apostrof (na przykład „Bob's Airpods”), może być konieczne użycie niestandardowego znaku. Wygląda na to, że urządzenia skonfigurowane w telefonie prawdopodobnie będą używać U + 2019znak, podczas gdy nasze IDE zwykle używają U + 0027. Skopiowałem / wkleiłem fantazyjny apostrof i to zadziałało dobrze.Używam Alfreda, żeby go wywołać i zajmuje to tylko ułamki sekundy
Allan
2016-05-03 20:34:46 UTC
view on stackexchange narkive permalink

AFIK, nie ma wbudowanego narzędzia wiersza poleceń do zarządzania indywidualnymi połączeniami Bluetooth.

W rzeczywistości strona podręcznika man blued (demon OS X Bluetooth) podaje konkretnie:

Demon Bluetooth obsługuje transakcje SDP, zarządzanie kluczami łączy i akceptację połączeń przychodzących. Nie może być używane bezpośrednio przez użytkownika. (Podkreślam moje)

Wygląda na to, że jesteś ograniczony do ładowania / usuwania demona BT z wiersza poleceń . Może to być jednak pomocne. Jeśli Twoje urządzenie jest aktywne, OS X połączy się z urządzeniem automatycznie po uruchomieniu. Innymi słowy, po uruchomieniu demona automatycznie połączy się z dowolnym urządzeniem w zasięgu.

Pobierz status demona Jeśli wydamy polecenie defaults read /Library/Preferences/com.apple.Bluetooth.plist ControllerPowerState

Odpowiada 1 lub 0 w zależności od czy demon BT jest uruchomiony czy nie; 1 jest włączony, 0 nie działa.


Wyładuj demona

Wydanie polecenia sudo killall blued powinno zabić demon BT. Wadą jest to, że jeśli masz klawiaturę BT, przestanie ona działać.


(Ponowne) uruchomienie demona

Jeśli wydamy polecenie: launchctl start com.apple.blued , powie demonowi, aby uruchomił się (ponownie). Po wykonaniu tej czynności powinien wykryć urządzenie w zasięgu.

Złożenie wszystkiego razem Składając to w jedną linię, możemy wydać polecenie

sudo killall blued && sleep 3 && launchctl start com.apple.blued

Co to robi…

  1. Zabij demona
  2. Czeka przez 3 sekundy, aby upewnić się, że został zabity (możesz to zmienić, jeśli chcesz)
  3. Uruchamia demona.

Teraz aby było łatwiej

Aby to ułatwić, nadajemy mu alias . Możesz nazwać alias, jak chcesz; Po prostu użyłem „btrestart”, ponieważ ma to sens w tym kontekście.

alias btrestart = sudo killall blued && sleep 3 && launchctl start com.apple.blued

Teraz, w dowolnym miejscu powłoki terminala, jeśli wpiszesz btrestart wyda polecenie. Gdy już to zrobisz, możesz dodać go do swojego .bash_profile , aby alias był trwały po ponownym uruchomieniu:

  echo alias btrestart = sudo killall blued && sleep 3 && launchctl start com.apple.blued >> ~ / .bash_profile  


Kilka uwag

  1. Będziesz mieć do wprowadzania hasła za każdym razem. Launchctl jest poleceniem systemowym i wymaga podwyższonych uprawnień.
  2. Wszystkie urządzenia BT zostaną odłączone i ponownie podłączone. Jeśli masz tylko jedno lub dwa urządzenia BT, może to nie stanowić większego problemu

Mam nadzieję, że to poprowadzi Cię we właściwym kierunku ....

frank ankersly
2016-05-04 05:22:33 UTC
view on stackexchange narkive permalink
  blued listall  

To polecenie terminala informuje o wszystkich obecnie „znanych” urządzeniach. Będziesz musiał dowiedzieć się (czytając między wierszami), który jest który (zakładając, że nazwałeś swoje trackpady czymś „ładnym”, np. „Dom” lub „praca” itp.)

Zrobiłem to i otrzymałem:

  2016-05-03 20: 14: 58.392 blued [3852: 507] hostControllerOnline - Liczba sparowanych urządzeń = 3, Lista sparowanych urządzeń = ( "d8-96-95-e0-3e-f8", "c4-2c-03-b7-87-57", "90-84-0d-e4-7b-41") znaleziono klucz linku dla urządzenia: c4- 2c-03-b7-87-572016-05-03 20: 15: 04.637 oksydowany [3852: 507] znaleziono klucz łącza dla urządzenia: c4-2c-03-b7-87-572016-05-03 20: 15: 04.639 blued [3852: 507] [setSystemPreference] syncs zwraca false2016-05-03 20: 15: 04.639 blued [3852: 507] Zapisz klucz łącza dla urządzenia: c4-2c-03-b7-87-57 znaleziono klucz łącza dla urządzenia: 90 -84-0d-e4-7b-412016-05-03 20: 15: 04.640 oksydowany [3852: 507] znaleziono klucz łącza dla urządzenia: 90-84-0d-e4-7b-412016-05-03 20:15: 04.640 oksydowana [3852: 507] Zapisz klucz łącza dla urządzenia: 90-84-0d-e4-7b-41 znaleziono klucz łącza dla urządzenia: d8-96-95-e0-3e-f82016-05-03 20:15: 04.640 oksydowana [3852: 507] klucz łącza fo und dla urządzenia: d8-96-95-e0-3e-f82016-05-03 20: 15: 04.641 oksydowany [3852: 507] Zapisz klucz łącza dla urządzenia: d8-96-95-e0-3e-f8 Utworzenie połączenia nie powiodło się (0x4) dla urządzenia: D8-96-95-E0-3E-F8  

(następnie nacisnąłem „ctrl-c”, aby anulować)

Załóżmy, że wiedziałem, że „c4-2c-03-b7-87-57” to „dom” ....

dalej:

  blued join c4-2c-03-b7-87-57  

Działa to w moim (10.9.5) systemie. YMMV.

Być może będziesz musiał dodać funkcję kill, ponieważ wydaje się, że blued nie „komunikuje się” dobrze z Terminalem.

Więc być może możliwym poleceniem powłoki byłoby:

  blued join terminal c4-2c-03-b7-87-57killall  
Dzięki!Właśnie tego potrzebowałem.Znacznie szybsze niż robienie tego za pomocą applecript i nie ma potrzeby wprowadzania hasła sudo.Zamiast `killall` po prostu ponownie wciskam ctrl + c
Myślę, że powiedziałem za wcześnie.Twoje polecenie umożliwia podłączenie i rozłączenie ostatniego włączonego polecenia Bluetooth, ale zmiana z jednego na drugie kończy się niepowodzeniem z tym błędem: `` Utworzenie połączenia nie powiodło się (0x4) dla urządzenia: 7C-C3-A1-4D-CF-99`
Victor Sergienko
2020-03-18 00:45:13 UTC
view on stackexchange narkive permalink

Właśnie to zrobiłem z https://github.com/toy/blueutil.

Zainstalowałem go z MacPorts:

  $ sudo port install blueutil
 

znalazłem identyfikator mojego urządzenia:

  $ blueutil --paired
adres: 03-5e-1c-4a-a8-11, niepodłączony, nie ulubiony, niesparowany, nazwa: „Los Headphones”, data ostatniego dostępu: 2020-03-17 17:58:09 +0000
...
 

Połączono:

  $ blueutil --connect 03-5e-1c-4a-a8-11
 
napar zainstalować blueutil


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...