Wie kann ich Bluetooth-Tethering über die Befehlszeile starten?

8

Ich möchte einen schnellen Weg finden, um mit meinem iPhone mit dem Tethering zu beginnen, hoffentlich nur mit der Tastatur. Über das Bluetooth-Menü kann ich im Untermenü meines Geräts die Option Mit Netzwerk verbinden auswählen. Ist es jedoch möglich, dies zu automatisieren?

Letztendlich möchte ich dies einer Verknüpfung in (der sehr großartigen) Alfred.app zuweisen, aber alles, was die Befehlszeile oder AppleScript verwendet, funktioniert.

Ist das möglich? Vielen Dank!!

mcobrien
quelle

Antworten:

3

Es sieht nicht so aus, als gäbe es ein direktes AppleScript-Wörterbuch für die Arbeit mit Bluetooth auf diese Weise.

Sie können jedoch GUI-Skripte verwenden, die im Wesentlichen die Eingabehilfenfunktion von Mac OS verwenden, um Menüelemente usw. auszuwählen.

Auf MacOSAutomation.com finden Sie eine ausführliche Beschreibung, wie Sie mit der GUI AppleScript beginnen können .

Die GUI-Automatisierung kann schwierig sein, wenn Sie eine sich ständig ändernde Liste von Dingen haben, aber wenn Sie normalerweise eine Liste von Bluetooth-Elementen haben, die gleich bleibt, sollten Sie in Ordnung sein.

Sie können dieses AppleScript dann über Alfred aufrufen.

jmlumpkin
quelle
1

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

Im obigen Link gibt es ein sehr schönes Skript, das ich gerade ein bisschen aktualisiert habe. Beachten Sie, dass es blueutil [ git repo ] [ Website / Binärdateien ] verwendet.

Bluetooth aktivieren:

-- 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

Bluetooth deaktivieren:

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
Meetai.com
quelle
0

Ich würde empfehlen, dafür einen Automator zu verwenden. Sie können ihn von Alfred aus aufrufen, um es einfach zu machen :)

Mein aktueller Automator-Workflow macht dies:

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

Mit dieser Methode können Sie fast alles innerhalb einer Minute automatisieren

Wolph
quelle