Jak mogę rozpocząć tethering Bluetooth za pomocą wiersza poleceń?


8

Chciałbym szybko rozpocząć tethering za pomocą mojego iPhone'a, mam nadzieję, że po prostu za pomocą klawiatury. Korzystając z menu bluetooth, mogę wybrać opcję Połącz z siecią w podmenu dla mojego urządzenia, ale czy można to zautomatyzować?

Ostatecznie chcę przypisać to do skrótu w (niesamowitym) Alfred.app, ale wszystko, co używa wiersza polecenia lub AppleScript, będzie działać.

czy to możliwe? Dzięki!!

Odpowiedzi:


3

Nie wygląda na to, że istnieje bezpośredni słownik AppleScript do pracy z Bluetooth w ten sposób.

Możesz jednak użyć skryptów GUI, które w zasadzie korzystają z funkcji ułatwień dostępu w systemie Mac OS, aby wybierać elementy menu itp.

Świetny opis startu z GUI AppleScript jest dostępny na MacOSAutomation.com .

Automatyzacja GUI może być trudna, jeśli masz ciągle zmieniającą się listę rzeczy, ale jeśli często masz podłączoną listę elementów Bluetooth, która pozostaje taka sama, powinieneś być w porządku.

Możesz wtedy nazwać ten AppleScript przez Alfreda.


1

http://macscripter.net/viewtopic.php?id=38559

W powyższym linku znajduje się bardzo fajny skrypt, który właśnie zaktualizowałem. Zauważ, że używa blueutil [ git repo ] [ strona / pliki binarne ].

Włącz Bluetooth:

-- Enable Bluetooth and Connect to iPhone

property blueutilPath : "/opt/local/bin/blueutil"

-- Turn on bluetooth.
if execBlueutil("status") contains "Status: off" then
    execBlueutil("on")

    connectDevice()

    doGrowl()

end if

on execBlueutil(command)
    set res to do shell script blueutilPath & " " & command
    if res contains "Error" then
        display dialog res
        quit
    end if
    return res
end execBlueutil

-- Connect Device
on connectDevice()
    tell application "System Preferences"
        activate
        set AppleScript's text item delimiters to "."
        set current pane to pane "com.apple.preference.network"
        set winNetwork to "Network"
        set btooth to "Bluetooth"

        tell application "System Events" to tell process "System Preferences"
            set theRow to row 1 of table 1 of scroll area 1 of window winNetwork whose value of static text 1 contains btooth
            select theRow --clicks the bluetooth row
            --If Bluetooth is already connected, the button will say Disconnect, so we don't want to turn it off:
            try
                click (button 1 of group 1 of window winNetwork whose title is "Connect")
            end try
        end tell
        tell application "System Preferences"
            quit
        end tell
    end tell
end connectDevice

on doGrowl()
    tell application "System Events"
        set isRunning to (count of (every process whose bundle identifier is "com.Growl.GrowlHelperApp")) > 0
    end tell
    if isRunning then
        tell application id "com.Growl.GrowlHelperApp"
            set the allNotificationsList to ¬
                {"Bluetooth Setting"}
            set the enabledNotificationsList to ¬
                {"Bluetooth Setting"}
            register as application ¬
                "AppleScript - Bluetooth" all notifications allNotificationsList ¬
                default notifications enabledNotificationsList

            notify with name ¬
                "Bluetooth Setting" title ¬
                "Bluetooth is On & iPhone Connected" description ¬
                "Bluetooth has been enabled with iPhone tethered." application name "AppleScript - Bluetooth" icon of file (path to me)
        end tell
    end if
end doGrowl

Wyłącz bluetooth:

property blueutilPath : "/opt/local/bin/blueutil"

-- Turn off Bluetooth.
if execBlueutil("status") contains "Status: on" then
    execBlueutil("off")

    doGrowl()
end if
on execBlueutil(command)
    set res to do shell script blueutilPath & " " & command
    if res contains "Error" then
        display dialog res
        quit
    end if
    return res
end execBlueutil

on doGrowl()
    tell application "System Events"
        set isRunning to (count of (every process whose bundle identifier is "com.Growl.GrowlHelperApp")) > 0
    end tell
    if isRunning then
        tell application id "com.Growl.GrowlHelperApp"
            set the allNotificationsList to ¬
                {"Bluetooth Setting"}
            set the enabledNotificationsList to ¬
                {"Bluetooth Setting"}
            register as application ¬
                "AppleScript - Bluetooth" all notifications allNotificationsList ¬
                default notifications enabledNotificationsList

            notify with name ¬
                "Bluetooth Setting" title ¬
                "Bluetooth Off" description ¬
                "Bluetooth has been disabled." application name "AppleScript - Bluetooth" icon of file (path to me)
        end tell
    end if
end doGrowl

0

Polecam do tego automatyzator, możesz to nazwać Alfredem, aby ułatwić :)

Mój obecny przepływ pracy automatyzatora wykonuje to:

Click the "bluetooth" menu bar item.
Connect to Network

Za pomocą tej metody możesz zautomatyzować prawie wszystko w ciągu minuty

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.