8 votes

Comment démarrer le Bluetooth tethering à l'aide de la ligne de commande ?

J'aimerais avoir un moyen rapide de commencer à faire du tethering avec mon iPhone, si possible en utilisant simplement le clavier. En utilisant le menu Bluetooth, je peux choisir l'option Connecter au réseau dans le sous-menu de mon appareil, mais est-il possible d'automatiser cette opération ?

En fin de compte, je veux assigner ceci à un raccourci dans (le très génial) Alfred.app, mais tout ce qui utilise la ligne de commande ou AppleScript fonctionnera.

Est-ce possible ? Merci !

3voto

Bill Points 1408

Il ne semble pas qu'il existe un dictionnaire AppleScript direct pour travailler avec Bluetooth de cette manière.

Vous pouvez cependant utiliser le GUI scripting, qui utilise essentiellement la fonction d'accessibilité de Mac OS pour sélectionner des éléments de menu, etc.

Un excellent article sur la façon de débuter avec l'interface graphique AppleScript est disponible sur MacOSAutomation.com .

L'automatisation de l'interface graphique peut être difficile si vous avez une liste de choses qui change constamment, mais si vous avez généralement une liste d'éléments Bluetooth connectés qui reste la même, tout devrait bien se passer.

Vous pouvez ensuite appeler cet AppleScript par l'intermédiaire d'Alfred.

1voto

Meetai.com Points 131

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

Le lien ci-dessus contient un très beau script que je viens de mettre à jour. Notez qu'il utilise blueutil [ git repo ] [ site web/binaires ].

Activer 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

Désactiver le 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

0voto

Wolph Points 1538

Je recommanderais d'utiliser automator pour cela, vous pouvez l'appeler à partir d'Alfred pour faciliter les choses :)

C'est ce que fait mon flux de travail actuel dans Automator :

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

Cette méthode permet d'automatiser presque tout en une minute

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X